Python 合并不同的数据帧并从基本数据帧添加其他列
我正在尝试合并不同的数据帧 假设这两个数据帧融为一体Python 合并不同的数据帧并从基本数据帧添加其他列,python,python-3.x,pandas,Python,Python 3.x,Pandas,我正在尝试合并不同的数据帧 假设这两个数据帧融为一体 dfs[0]= Date Code delta_7 0 2014-04-01 GWA 0.08 1 2014-04-02 TVV -0.98 dfs[1]= Date Code delta_14 0 2014-04-01 GWA nan 1 2014-04-02 XRP
dfs[0]
=
Date Code delta_7
0 2014-04-01 GWA 0.08
1 2014-04-02 TVV -0.98
dfs[1]=
Date Code delta_14
0 2014-04-01 GWA nan
1 2014-04-02 XRP -1.02
我希望将上述两个数据框与我的基本数据框中的volume
&GR
列合并
base\u 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:您正在尝试合并对象和datetime64[ns]列。如果您希望继续,应使用pd.concat
感谢您的帮助。谢谢 feature\u dfs中的一个数据帧可能有一个非日期时间数据类型。feature\u dfs中的一个数据帧可能有一个非日期时间数据类型。这应该可以工作,因为它说明df的一些日期不是日期时间格式
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)
这应该是可行的,因为df的一些日期不是日期时间格式
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)
尝试打印数据帧的数据类型和索引:
for i, df in enumerate(feature_dfs):
print 'DataFrame index: {}'.format(str(i))
print df.info()
print '-'*72
我假设其中一个数据帧将显示一行,如:
Date X non-null object
表示您没有日期的日期时间数据类型。该数据帧是罪魁祸首,您将获得上面打印的索引。尝试打印数据帧的数据类型和索引:
for i, df in enumerate(feature_dfs):
print 'DataFrame index: {}'.format(str(i))
print df.info()
print '-'*72
我假设其中一个数据帧将显示一行,如:
Date X non-null object
表示您没有日期的日期时间数据类型。该数据帧是罪魁祸首,您将获得上面打印的索引。这就解决了它。谢谢温家宝,这就解决了。谢谢温家宝。其中一个dfs没有日期时间数据类型。谢谢。其中一个dfs没有日期时间数据类型。谢谢