合并不同的DataFrame并从基本datafram添加其他列

2024-06-17 10:46:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试合并不同的数据帧。你知道吗

假设这两个熔化的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&;GR列。你知道吗

base_df =

     Date         Code      Volume       GR
0   2014-04-01     XRP    74,776.48    482.76
1   2014-04-02     TRR   114,052.96    460.19 

我试图使用Python的内置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.

ValueError: You are trying to merge on object and datetime64[ns] columns. If you wish to proceed you should use pd.concat

感谢您的帮助。谢谢!你知道吗


Tags: to数据reducedateoncodemergefeature
3条回答

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

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

我假设其中一个数据帧将显示一行,如:

Date    X non-null object

表示没有Date的datetime数据类型。这个数据帧是罪魁祸首,您将拥有上面打印的索引。你知道吗

这应该是可行的,因为它说明了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)

feature_dfs中的一个数据帧可能具有非datetime数据类型。你知道吗

相关问题 更多 >