我在使用pandas的合并功能时遇到了一些棘手的问题。下面是一个我遇到问题的玩具示例:
df1 = pd.DataFrame({'A': [0, 1, 2, 3],
'B': ['B0', 'B1', 'B2', 'B3'],
'C': ['C0', 'C1', 'C2', 'C3'],
'D': ['D0', 'D1', 'D2', 'D3']},
index=[0, 1, 2, 3])
s = pd.Series(['E0', 'E1', 'E2', 'E3'], index = [0,1,2,3])
如果我现在想要按数据框中的 A 列和系列中的索引进行左合并,即:
pd.merge(df1,s,how='left', left_on = 'A', right_index = True)
I get the following error:
IndexError: list index out of range
我其实并不太理解。更令人困惑的是,将该系列替换为另一个数据框时,一切都能正常运行:
df2 = pd.DataFrame({'E': ['E0','E1','E2','E3'],
'F': ['F0', 'F1', 'F2', 'F3']},
index=[0, 1, 2, 3])
pd.merge(df1,df2,how='left', left_on = 'A', right_index = True)
提供:
A B C D E F
0 0 B0 C0 D0 E0 F0
1 1 B1 C1 D1 E1 F1
2 2 B2 C2 D2 E2 F2
3 3 B3 C3 D3 E3 F3
我可能缺少一些非常基本的知识,但我怀疑这是那种对未来有帮助的事情之一!提前致谢。
merge
吗?你可以分配一个系列,例如df1['E'] = s
。 - AChampion