【发布时间】:2019-08-01 16:18:19
【问题描述】:
我有 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 中不存在的行:
新DF:
Chr MapInfo Name SourceSeq Unnamed: 0 rs
8 A8 B8 C8 D8 E8
10 A10 B10 C10 D10 E10
我想用Name 过滤它。有什么更好的方法来做到这一点?
我经历了 fullouter 合并,但列不同,老实说,我不知道如何正确地做到这一点。
其次,think 是一个循环,但效率不高。
最后我尝试这样做:
new= secondDF[~firstDF.Name.isin(secondDF.name)]
但我得到了:
IndexingError:作为索引器提供的不可对齐的布尔系列(布尔系列的索引和索引对象的索引不匹配
有人可以就这项任务给我建议吗?
【问题讨论】:
-
"boolean Series 和被索引对象的索引不匹配" ,尝试重置索引
-
你可以从here获得这方面的帮助
-
在您的示例中需要
new= firstDF[~firstDF.Name.isin(secondDF.name)],两个DataFrame 之间的列值也不匹配?喜欢需要匹配SourceSeq from first with Unnamed: 0 from second?