我有一个 pandas 数据帧字典,每个帧包含时间戳和与时间戳对应的市值,其键是:
coins = ['dashcoin','litecoin','dogecoin','nxt']
我想在字典“merge”中创建一个新键,并使用 pd.merge 方法根据时间戳合并 4 个现有数据帧(我想要完整的行,因此使用“内部”连接方法是合适的。
其中一个数据帧的示例:
data2['nxt'].head()
Out[214]:
timestamp nxt_cap
0 2013-12-04 15091900
1 2013-12-05 14936300
2 2013-12-06 11237100
3 2013-12-07 7031430
4 2013-12-08 6292640
我目前使用此代码得到结果:
data2['merged'] = data2['dogecoin']
for coin in coins:
data2['merged'] = pd.merge(left=data2['merged'],right=data2[coin], left_on='timestamp', right_on='timestamp')
但这会在“合并”中重复“狗狗币”,但是如果 data2['merged']
不是= data2['dogecoin']
(或一些类似的数据),那么合并功能将无法工作,因为“合并”中不存在这些值
编辑:我想要的结果是创建一个在字典“data2”(data2['merged'])中的新元素中看到的合并数据帧,其中包含来自 data2 中其他元素的合并数据帧
最佳答案
尝试用实际命名的 df 替换通用的 pd.merge()
但您必须至少以第一个数据帧开始:
data2['merged'] = data2['dashcoin']
# LEAVE OUT FIRST ELEMENT
for coin in coins[1:]:
data2['merged'] = data2['merged'].merge(data2[coin], on='timestamp')
关于python - 在 for 循环中将数据帧合并在一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35230446/