gpt4 book ai didi

python - Pandas 在不创建新列的情况下 append 数据框

转载 作者:行者123 更新时间:2023-11-28 17:26:49 27 4
gpt4 key购买 nike

我有两个如下所示的数据框:

df1=
A B
1 A1 B1
2 A2 B2
3 A3 B3

df2 =
A C
4 A4 C4
5 A5 C5

我想将 df2 append 到 df1,如下所示:

   A   B   
1 A1 B1
2 A2 B2
3 A3 B3
4 A4 NaN
5 A5 NaN

(注意:我已经编辑了数据帧,因此 df1 中的所有列不一定都在 df2 中)

无论我使用 concat 还是 append,我得到的结果数据框都会有一个名为“C”的列,前三行填充了 nan。我只想保留 df1 中的两个原始列,并 append 新值。有没有一种方法可以连接数据帧而不必在之后删除额外的列?

最佳答案

您可以先通过subset 过滤要追加的列:

print (df2[['A']])
A
4 A4
5 A5

print (pd.concat([df1, df2[['A']]]))
A B
1 A1 B1
2 A2 B2
3 A3 B3
4 A4 NaN
5 A5 NaN

print (df1.append(df2[['A']]))
A B
1 A1 B1
2 A2 B2
3 A3 B3
4 A4 NaN
5 A5 NaN

print (df2[['A','B']])
A B
4 A4 B4
5 A5 B5

print (pd.concat([df1, df2[['A','B']]]))
A B
1 A1 B1
2 A2 B2
3 A3 B3
4 A4 B4
5 A5 B5

或者:

print (df1.append(df2[['A','B']]))
A B
1 A1 B1
2 A2 B2
3 A3 B3
4 A4 B4
5 A5 B5

通过评论编辑:

如果 df1df2 中的列有不同的列,请使用 intersection :

print (df1)
A B D
1 A1 B1 R
2 A2 B2 T
3 A3 B3 E

print (df2)
A B C
4 A4 B4 C4
5 A5 B5 C5

print (df1.columns.intersection(df2.columns))
Index(['A', 'B'], dtype='object')

print (pd.concat([df1, df2[df1.columns.intersection(df2.columns)]]))
A B D
1 A1 B1 R
2 A2 B2 T
3 A3 B3 E
4 A4 B4 NaN
5 A5 B5 NaN

关于python - Pandas 在不创建新列的情况下 append 数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38205289/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com