python - 在 for 循环中将数据帧合并在一起

标签 python pandas merge

我有一个 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/

相关文章:

用于验证字典值中项目是否存在的 Python3 单行代码

python - 在 Python 中获取介于最小值和最大值之间的值

python - 如何在 Django Rest Framework 的 View 集中渲染为 html

python - Pandas 如何删除交替行

javascript - jQuery - 通过改变合并两个数组

java - 如何将两个maven webapp合并到一个项目中

python - 警告 : imresize is deprecated in Scipy 1. 14.3

python - Pandas 数据框中满足特定条件的所有行的平均值

python - 在 Pandas 中滚动应用显示 "TypeError: only length-1 arrays can be converted to Python scalars"

ios - 合并两个不同大小的 UIImageView