合并不同的数据框并从基本数据框添加其他列

时间:2018-08-28 23:22:25

标签: python python-3.x pandas

我正在尝试合并不同的数据框。

假设这两个人融化了dataframes

melted_dfs[0] =

        Date      Code       delta_7
0   2014-04-01     GWA        0.08
1   2014-04-02     TVV       -0.98

melted_dfs[1] =

       Date       Code       delta_14
0   2014-04-01     GWA         nan
1   2014-04-02     XRP       -1.02

我希望将上述两个数据框与来自我的基础volume的{​​{1}}和GR列一起合并。

dataframe

base_df =

我试图通过将所有数据帧转换为列表来使用Python内置的 Date Code Volume GR 0 2014-04-01 XRP 74,776.48 482.76 1 2014-04-02 TRR 114,052.96 460.19 函数,但会引发错误

reduce

abt = reduce(lambda x,y: pd.merge(x,y,on=['Date', 'Code']), feature_dfs) # feature_dfs is a list which contains all the above dfs.

感谢您的帮助。谢谢!

3 个答案:

答案 0 :(得分:1)

您在feature_dfs中的一个数据框可能具有非datetime dtype。

答案 1 :(得分:1)

这应该有效,因为它指出df的某些日期不是datetime格式

feature_dfs=[x.assign(Date=pd.to_datetime(x['Date'])) for x in feature_dfs]

abt = reduce(lambda x,y: pd.merge(x,y,on=['Date', 'Code']), feature_dfs)

答案 2 :(得分:1)

尝试打印数据帧的数据类型和索引:

for i, df in enumerate(feature_dfs):
    print 'DataFrame index: {}'.format(str(i))
    print df.info()
    print '-'*72

我认为其中一个DataFrames将显示如下一行:

Date    X non-null object

表示您没有Date日期的数据类型。该DataFrame是元凶,您将获得上面打印的索引。