gpt4 book ai didi

python - 使用 Pandas 添加来自不同表的属性

转载 作者:太空宇宙 更新时间:2023-11-03 13:36:04 25 4
gpt4 key购买 nike

我正在使用 Pandas 处理表格。

[table1]
sample1 sample2 sample3
A 11 22 33
B 1 2 3

[table2]
sample3 sample4 sample2
D 333 444 222

[Result]
sample1 sample2 sample3
A 11 22 33
B 1 2 3
D NaN 222 333

我有两个表,考虑到列名,我想将(表 2 的)D 行添加到表 1。如果表1中的列在表2中存在,则将D对应的值添加到表1中,如示例2和示例3。如果表中的列在表2中不存在,如示例1 , D 的值设置为 NaN 或忽略。

有什么简单的方法可以用 Pandas 做到这一点吗?

最佳答案

我想你可以使用 concat然后通过 drop 删除列 sample4 :

print (pd.concat([table1, table2]).drop('sample4', axis=1))
sample1 sample2 sample3
A 11.0 22 33
B 1.0 2 3
D NaN 222 333

您可以使用 intersection用于选择 DataFrames 中的列,然后通过这些列连接 table2 的子集:

print (table2.columns.intersection(table1.columns))
Index(['sample2', 'sample3'], dtype='object')

print (pd.concat([table1,table2[table2.columns.intersection(table1.columns)]]))
sample1 sample2 sample3
A 11.0 22 33
B 1.0 2 3
D NaN 222 333

然后如果需要删除带有 NaN 的行,请使用 dropna :

print (pd.concat([table1, table2]).drop('sample4', axis=1).dropna())
sample1 sample2 sample3
A 11.0 22 33
B 1.0 2 3

关于python - 使用 Pandas 添加来自不同表的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39404740/

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