Python 在for循环中将数据帧合并在一起
我有一个熊猫数据帧字典,每个帧包含与时间戳对应的时间戳和市值,其关键是:Python 在for循环中将数据帧合并在一起,python,pandas,merge,Python,Pandas,Merge,我有一个熊猫数据帧字典,每个帧包含与时间戳对应的时间戳和市值,其关键是: coins = ['dashcoin','litecoin','dogecoin','nxt'] 我想在字典“merge”中创建一个新键,并使用pd.merge方法根据4个现有数据帧的时间戳合并它们(我需要完整的行,因此使用“internal”join方法是合适的) 其中一个数据帧的示例: data2['nxt'].head() Out[214]: timestamp nxt_cap 0 2013-12-04
coins = ['dashcoin','litecoin','dogecoin','nxt']
我想在字典“merge”中创建一个新键,并使用pd.merge方法根据4个现有数据帧的时间戳合并它们(我需要完整的行,因此使用“internal”join方法是合适的)
其中一个数据帧的示例:
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')
但这会在“合并”中重复“dogecoin”,但是如果data2['merged']
不是=data2['dogecoin']
(或一些类似数据),则合并函数将无法工作,因为“合并”中不存在值
编辑:我想要的结果是创建一个在字典“data2”(data2['merged'])中的新元素中看到的合并数据帧,其中包含来自data2中其他元素的合并数据帧既然您已经制作了
硬币
列表,为什么不做类似的事情呢
data2['merged'] = data2[coins[0]]
for coin in coins[1:]:
data2['merged'] = pd.merge(....
除非我有误解,否则这个问题不是特定于数据帧的,它只是关于当第一个元素必须与其他元素区别对待时如何编写循环。尝试用实际命名的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')
您想要的最终结果是什么?一个数据帧字典或一个合并的数据帧?或现有字典中的新数据帧元素?对不起,我应该更清楚,请查看我的编辑