我正在努力解决一些简单的事情,这让我发疯。
为什么像下面这样的连接并不能用df1 +附加列替换df1?
df1 = pd.DataFrame({'A':[1, 2, 3], 'B':[4, 5, 6]})
df2 = pd.DataFrame({'A':[1, 2, 3], 'B':[4, 5, 6]})
df3 = pd.DataFrame({'C':[999, 999, 999]})
for table in [df1, df2]:
table = pd.concat((table, df3), axis=1)
df1
谢谢!
[edit]我需要分别获得df1和df2:
答案 0 :(得分:1)
您有两个DataFrame。这些变量由两个变量名称引用" df1"和" df2"。现在,您在别名" table"下循环遍历这些dataFrame。在循环内部," table"被重新分配给concat
的结果。由于concat
未就位,原始DataFrame的 none 将被修改。
我的建议是维护一个DataFrame列表。
df_list = [df1, df2]
现在,修改列表:
for i, df in enumerate(df_list):
df_list[i] = pd.concat([df, df3], axis=1)
df_list
将反映更新,因为它现在将保留新创建的concat
输出。
df1, df2 = df_list
print(df1)
A B C
0 1 4 999
1 2 5 999
2 3 6 999
print(df2)
A B C
0 1 4 999
1 2 5 999
2 3 6 999