python - 如何通过熊猫中不同的列值重组每日时间序列?
问题描述
我有美国不同县的每日时间序列数据,即 covid 病例每日时间序列,我想对其进行重组/重塑,以便将其与我拥有的其他时间序列数据一起使用。所以我尝试groupby
重新组合时间序列的操作,但我得到如下值错误:
ValueError:对象类型 DataFrame 没有名为county_state 的轴
我不确定使用groupby
是否正确。任何人都可以建议在熊猫中这样做的可能方法吗?任何想法?
当前尝试
这是gist 上的可重复数据。这是我目前的尝试:
import pandas as pd
df = pd.read_csv("df.csv")
df['date'] = pd.to_datetime(df['date'])
df.groupby('date', 'county_state')['cases', 'deaths'].unstack().reset_index()
但上述尝试不起作用,而是导致ValueError
。谁能建议如何做到这一点?
期望的输出
这是我预期的数据框的输出结构,无需使用cases
or聚合deaths
。
date fips cases deaths county_state
1/26/2020 4013 1 0 Maricopa_Arizona
1/27/2020 4013 5 0 Maricopa_Arizona
1/28/2020 4013 7 0 Maricopa_Arizona
...
9/02/202 4013 2333 100 Maricopa_Arizona
1/26/2020 6037 1 0 Los Angeles_California
1/27/2020 6037 15 2 Los Angeles_California
1/28/2020 6037 20 4 Los Angeles_California
...
9/02/202 6037 10001 200 Los Angeles_California
如何实现我上面的预期输出?有什么办法可以在熊猫中做到这一点?
解决方案
您需要这样做才能正确导入 CSV,CSV 在每行末尾有一些空格问题,并且您的分隔符是“”。最好将县和州拆分为单独的列,对它们进行排序,然后删除它们:
df = pd.read_csv('df.csv', sep=' ')
df.drop(columns='Unnamed: 5', inplace=True)
df['date'] = pd.to_datetime(df['date'])
df['state'] = df['county_state'].str.split('_').str[1]
df['county'] = df['county_state'].str.split('_').str[0]
df.sort_values(by=['state', 'county', 'date'], inplace=True)
df.drop(columns=['state', 'county'], inplace=True)
print(df)
date fips cases deaths county_state
0 2020-01-26 4013 1 0 Maricopa_Arizona
2 2020-01-27 4013 1 0 Maricopa_Arizona
4 2020-01-28 4013 1 0 Maricopa_Arizona
6 2020-01-29 4013 1 0 Maricopa_Arizona
8 2020-01-30 4013 1 0 Maricopa_Arizona
... ... ... ... ... ...
7280 2020-08-29 55081 280 2 Monroe_Wisconsin
7325 2020-08-30 55081 281 2 Monroe_Wisconsin
7370 2020-08-31 55081 282 2 Monroe_Wisconsin
7415 2020-09-01 55081 286 2 Monroe_Wisconsin
7460 2020-09-02 55081 290 2 Monroe_Wisconsin
[7461 rows x 5 columns]
推荐阅读
- laravel - laravel 虚拟主机设置未显示前端
- python-3.x - 从文件重新创建回溯
- android - 如何解决flutter firebase_analytics依赖错误?
- linux - 编写兼容的看门狗内核模块
- dynamics-crm - 如何像 SDK 一样使 Dynamics 365 Web API 默认为 ownerid?
- c# - 客户端服务器 Web API 请求
- android - 如何在 Android 的 Firestore 中忽略或禁用 addSnapshotListener 的第一个查询快照
- c# - Assembly.Load 用于不在 deps.json 文件中的程序集
- selenium-chromedriver - Chrome 浏览器在运行 selenium 脚本时在新选项卡中打开文件下载后崩溃
- html - SVG 未在最新版本的 Chrome 中显示