【发布时间】:2020-09-10 00:09:24
【问题描述】:
我打算在 pandas 中加入两个不同维度的时间序列。第一个时间序列是关于covid19每日病例数据,而第二个时间序列是食品加工厂的每日切割统计数据,然后我想通过其公共列将合并的数据框与另一个数据连接起来。首先,我想按特定规格加入他们。在covid病例时间序列中,数据是按县级记录的,而在日切时间序列中,有日切统计数据,可以是每个县的平均日切时间序列,也可以是均匀分布的。为了使加入这两个时间序列更合乎逻辑,我做了一些聚合并尝试加入,但它没有按我预期的那样工作。任何人都可以建议在熊猫中实现这一点的可能方法吗?有什么想法吗?
当前的尝试和可重现的数据
这里是 covid time series data in gist 来自 NYT covid19 数据,daily cut time series 来自食品加工机构。这是我目前的尝试:
import pandas as pd
df1= pd.read_csv("us_covid_by_counties.csv")
df1 = df1.drop(columns=['Unnamed: 0'], inplace=True)
df2= pd.read_csv("daily_cut.csv")
df2 = df2.drop(columns=['Unnamed: 0'], inplace=True)
## process and aggregate covid time series
ctyList = list(df1['county'].unique())
df1_new= {}
for c in ctyList:
cty_df = df1[df1['county']==c]
cty_df['new_cases'] = cty_df['cases'].diff()
cty_df['new_deaths'] = cty_df['deaths'].diff()
df1_new[c] = cty_df
df1_new = pd.DataFrame.from_dict(df1_new, orient='index')
然后,我尝试以这种方式合并它们:
df_merged = pd.concat([df1_new , df2]).sort_values('date').reset_index(drop=True)
更新:
如果合并df1_new 和df2 可以正确完成,我想通过county_state 再次加入df_merged 和this data。有什么办法可以在 pandas 中做到这一点?
但我很难正确加入这两个时间序列。任何人都可以提出任何可能的想法来完成这项工作吗?有什么可能的想法吗?
【问题讨论】:
-
请检查 pandas
pandas.merge_asof合并选项。像这样pd.merge_asof(df1, df2, on="time_column", direction='nearest')