首页 > 解决方案 > 数据框中的每日数据到每周

问题描述

我正在查看每日记录的数据集,我想从每日汇总到每周以缩小数据集的大小。我玩过重新采样,这似乎效果很好,但是我注意到它会从我的非数值列(县和州)中掉下来。

理想情况下,我正在寻找预期的输出:

不要真正关心 case/deaths_avg_per_100k 字段。如果 case/deaths_avg 字段太难以操作,我可以没有它们,但如果有的话会很好。

在不丢失字符串列的情况下,最好的方法是什么?这是我尝试过的,但导致我缺少字符串列(县和州):

        date      geoid     county  ... deaths  deaths_avg  deaths_avg_per_100k
0 2020-01-21  USA-53061  Snohomish  ...      0         0.0                  0.0
1 2020-01-22  USA-53061  Snohomish  ...      0         0.0                  0.0
2 2020-01-23  USA-53061  Snohomish  ...      0         0.0                  0.0
3 2020-01-24  USA-53061  Snohomish  ...      0         0.0                  0.0
4 2020-01-24  USA-17031       Cook  ...      0         0.0                  0.0
[5 rows x 10 columns]
import pandas as pd

url = 'https://raw.githubusercontent.com/nytimes/covid-19-data/master/rolling-averages/us-counties.csv'

df = pd.read_csv(url, low_memory=False, encoding = 'unicode_escape')
df['date'] = df['date'].astype('datetime64[ns]')
df = df.groupby('geoid','county','state').resample('W-SAT',
    label='right',
    closed='right',
    on='date').sum().reset_index().sort_values(by='date')
            geoid       date  cases  ...  deaths  deaths_avg  deaths_avg_per_100k
15373   USA-06059 2020-01-25      1  ...       0         0.0                  0.0
213034  USA-53061 2020-01-25      1  ...       0         0.0                  0.0
44145   USA-17031 2020-01-25      1  ...       0         0.0                  0.0
14582   USA-06037 2020-02-01      1  ...       0         0.0                  0.0
16352   USA-06085 2020-02-01      1  ...       0         0.0                  0.0
[5 rows x 8 columns]

标签: pythonpandas

解决方案


推荐阅读