每天合并两个数据框以制作一张图

时间:2019-03-23 13:12:59

标签: python pandas

所以我有两个数据框

df1和df2

df1:

Data1 Created
1     22-01-01      
4     22-01-01
3     22-01-01

df2:

Data1 Created
1     22-01-01      
6     23-01-01

每个具有相同的列名。

我想使用同一列“ Created”(创建日期),该日期是按天计数发生次数并将它们绘制在同一图中的日期。

我已经尝试过:

ax = df1.plot()
df2.plot(ax=ax,x_compat=True,figsize=(20,10))

但是我有这个:

enter image description here

编辑: df2.resample('D')。sum()给我:

Only valid with DatetimeIndex, TimedeltaIndex or PeriodIndex, but got an instance of 'RangeIndex'

我也尝试过这个:

ax = df1.set_index('Created').resample('1D', how='count').plot()
df2.set_index('Created').resample('1D', how='count').plot(ax=ax,x_compat=True,figsize=(20,10))

1 个答案:

答案 0 :(得分:0)

df1 = pd.DataFrame({'Data1': np.random.randint(0,30,size=10),'Created': pd.date_range("20180101", periods=10)})                  
df2 = pd.DataFrame({'Data1': np.random.randint(0,30,size=10),'Created': pd.date_range("20180103", periods=10)}) 
df = df1.merge(df2, on='Created', how='outer').fillna(0)
df['sum'] = df['Data1_x']+df['Data1_x']

df具有所有数据。

将总和绘制在一起

plt.plot(df['sum'], df['Created'])

或两个地块

plt.plot(df['Data1_x'], df['date'])
plt.plot(df['Data1_y'], df['date'])