gpt4 book ai didi

python - 如果数据帧包含在另一个数据帧中,Pandas 会从数据帧中删除该行

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


我有两个数据框,第一个数据框包含州名称和城市的多重索引以及具有不同数据的列。在另一个数据框中,我有州和城市名称。我想要做的是从第一个数据帧中删除与第二个数据帧具有相同州和城市的任何行。我尝试使用 isin 但没有成功。我正在考虑创建一个新专栏来进行比较,但我认为我可以做一些更快的事情。
谢谢。

最佳答案

IIUC:

idx1 = pd.MultiIndex.from_tuples([(1,1),(1,2),(1,3),(2,1),(2,2),(2,3)])

idx2 = pd.MultiIndex.from_tuples([(1,1),(1,2),(2,3)])

df1 = pd.DataFrame(list('ABCDEF'),index=idx1)

df1
0
1 1 A
2 B
3 C
2 1 D
2 E
3 F

df2 = pd.DataFrame(index=idx2)

df2

Empty DataFrame
Columns: []
Index: [(1, 1), (1, 2), (2, 3)]

isin 工作原理:

df1[df1.index.isin(df2.index)]

0
1 1 A
2 B
2 3 F

或者“不在”:

df1[~df1.index.isin(df2.index)]

0
1 3 C
2 1 D
2 E

关于python - 如果数据帧包含在另一个数据帧中,Pandas 会从数据帧中删除该行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47044291/

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