gpt4 book ai didi

python - 创建两个 pandas DF 之间的差异列

转载 作者:行者123 更新时间:2023-12-01 07:29:02 25 4
gpt4 key购买 nike

我有firstDF:

rs     Chr      MapInfo         Name       SourceSeq
1 A1 B1 C1 D1
2 A2 B2 C2 D2
3 A3 B3 C3 D3
4 A4 B4 C4 D4
5 A5 B5 C5 D5

secondDF:

Chr       MapInfo     Name    SourceSeq       Unnamed: 0       rs
1 A1 B1 C1 D1 E1
4 A4 B4 C4 D4 E4
8 A8 B8 C8 D8 E8
10 A10 B10 C10 D10 E10

我需要创建一个新的数据框,仅包含来自 secondDF 的行,这些行在第一个中不存在:

newDF:

Chr       MapInfo     Name    SourceSeq       Unnamed: 0       rs
8 A8 B8 C8 D8 E8
10 A10 B10 C10 D10 E10

我想按名称过滤它。什么是更好的方法来做到这一点?

我对 fullouter 合并感到不满,但列不同,老实说我不知道​​如何正确执行。

其次,think是一个循环,但效率不高。

最后我尝试这样做:

new= secondDF[~firstDF.Name.isin(secondDF.name)] 

但是我得到了:

IndexingError: Unalignable boolean Series provided as indexer (index of the boolean Series and of the indexed object do not match

有人可以给我关于这项任务的建议吗?

最佳答案

解决方案是更改掩码 - 按列与 firstDF 比较 secondDF.Name,从示例数据来看它是 MapInfo 列,在实际数据中似乎具有相同大小和索引值的 bool 掩码的 Name 列,例如 secondDF,因为已过滤 secondDF DataFrame:

new= secondDF[~secondDF.Name.isin(firstDF.MapInfo)] 
print (new)
Chr MapInfo Name SourceSeq Unnamed: 0 rs
2 8 A8 B8 C8 D8 E8
3 10 A10 B10 C10 D10 E10

关于python - 创建两个 pandas DF 之间的差异列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57303687/

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