Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python pd.merge生成新列名_Python_Pandas - Fatal编程技术网

Python pd.merge生成新列名

Python pd.merge生成新列名,python,pandas,Python,Pandas,合并两个数据帧,它们有一些通用的和一些不同的列名。结果生成新列名,这些列名不在其中,而是组合了每个列名中的名称字符串 2个数据帧: df.columns中有“particle”、“frame”、“x old”、“y old” 已更正。列具有“粒子”、“帧”、“x”、“y” 数据帧都没有“frame_x”或“frame_y” 然而,当我尝试合并时,结果没有名为“frame”的列,只有两个新列“frame_x”和“frame_y” 虽然dataframes索引链接到帧编号,但它们当前均未命名。我一直

合并两个数据帧,它们有一些通用的和一些不同的列名。结果生成新列名,这些列名不在其中,而是组合了每个列名中的名称字符串

2个数据帧:

df.columns中有“particle”、“frame”、“x old”、“y old” 已更正。列具有“粒子”、“帧”、“x”、“y”

数据帧都没有“frame_x”或“frame_y”

然而,当我尝试合并时,结果没有名为“frame”的列,只有两个新列“frame_x”和“frame_y”

虽然dataframes索引链接到帧编号,但它们当前均未命名。我一直在努力避免索引和列号具有相同名称时出现的相关错误。因此,一些代码试图删除索引名等。不确定这是否相关,因此已包括在内

数据帧是由trackpy的函数生成的,但我认为问题与pd.merge有关

总体目标是从粒子的运动中减去某些粒子的平均漂移。我想将旧的x和y移到“x旧”和“y旧”,并将校正后的值放在“x”和“y”中



抱歉,我尝试过缩进和点击代码,但似乎无法将其正确标记

我希望数据帧df带有“x”、“y”、“frame”、“particle”、“x old”、“y old”

相反,我得到的是“x”,“y”,“frame\u x”,“frame\u y”,“x old”,“y old”,“particle”


“frame x”和“frame y”的内容似乎是帧编号值。

如果您想要一个带有“x”、“y”、“frame”、“particle”、“x old”、“y old”的数据帧df,那么您应该按如下方式合并,以便在连接范围中合并particle和frame列。否则,它们将被视为基于传递给“on”的参数进行连接的列,因此将被视为frame_x,frame_y以分别标识它们

df = pd.merge(df, corrected_traj, on=['particle', 'frame'])

听起来两个数据帧中都有“frame”列,因为您告诉pandas在合并时只使用“particle”,所以剩下两个名为“frame”的列无法合并,所以它向您显示了这两个列,在“df”中为值添加了“_x”,在“corrected_traj”中为值添加了“_y”,这很有效。谢谢,这让我快发疯了!
df = pd.merge(df, corrected_traj, on=['particle', 'frame'])