我正在尝试合并5个相似的表,其中每个表都有相同的列名集,但年份不同。最终目标是一个包含21列(4列x 5个表,名称列+1)的表,以及与内部合并匹配的行数
为了适应这种情况,类似的列名通常会被重命名为“_y”、“_x”等后缀,以便在新的合并表中区分它们
但在我的例子中,第3列和第4列表中的名称被赋予了与第1列和第2列表相同的后缀(第5列表似乎没有后缀,即原始列名)。这导致合并表中出现一些精确的列名,从而使下游操作复杂化。为什么呢?我想知道.merge函数为什么会这样。我知道在合并之前可以通过重新标记原始dfs来保留所需的格式,但我很好奇为什么函数会显示上述行为*
以下是可复制的数据: https://pastebin.com/WEjqmKyz
以及我用来合并数据的操作:
import pandas as pd
import functools
df_list = [df1, df1, df3, df4, df5]
end_df = reduce(lambda left,right: pd.merge(left,right,on='name'), df_list)
这将导致正确的df,但命名问题除外**:
当我打印出生成的dfs列名时,会得到以下结果:
['name',
'attacking_crossing_x',
'skill_dribbling_x',
'defending_standing_tackle_x',
'valuation_x',
'attacking_crossing_y',
'skill_dribbling_y',
'defending_standing_tackle_y',
'valuation_y',
'attacking_crossing_x',
'skill_dribbling_x',
'defending_standing_tackle_x',
'valuation_x',
'attacking_crossing_y',
'skill_dribbling_y',
'defending_standing_tackle_y',
'valuation_y',
'attacking_crossing',
'skill_dribbling',
'defending_standing_tackle',
'valuation']
*编辑1 **编辑2
使用您关于年份的评论中的信息,您应该:
应该是这样的:
相关问题 更多 >
编程相关推荐