合并不同大小的数据框

时间:2019-10-31 12:49:44

标签: python pandas dataframe

我有两个数据框,每个数据框具有不同的列名,但是有一个共同的单个列名 两者之间,“ daydate”

df_dates的形状为90x1,其中每行在过去3个月中都有一个连续的日期。看起来像这样:

columns =      ['daydate'   ]
df1.iloc[0] =  ['01-01-2019']
...
df1.iloc[90] = ['04-01-2019']

df_data的形状为15x3,看起来与此类似:

columns =      ['daydate',      'hot_or_cold', 'thin_or_wide'  ]
df1.iloc[0] =  ['01-01-2019',   'hot',         'wide'          ]
...
df1.iloc[10] = ['01-10-2019',   'cold',        'wide'          ]

我想做的是将这两个数据帧组合成一个newdfnewdf的形状应为90x3。输出应该类似于日历,其中每一行都是来自df_dates的连续90天期间的日期,并且df_datesdf_data之间具有匹配的datedate的每一行都将获得来自df_data的rowdata在其对应的日期附加到newdf。并且没有匹配的datedate的每一行都填充了零。

预期输出:

['01/01/2019', 'hot', 'wide']
...
['02/01/2019', '0',   '0'   ]
...
['03/25/2019', 'hot', 'thin']

我曾经尝试使用pd.merge(df1,df2,on='daydates'),但是它没有给我完整的“日历”,而是给了我两者之间匹配的数据。 (形状可能是15x3。)但是我想从这两个数据(形状90x3)全部 。我也尝试了其他几种方法,例如pd.concat,但均未成功,并尝试迭代构建新的数据框。任何帮助将不胜感激!

0 个答案:

没有答案