gpt4 book ai didi

python - 如果 python 中满足两列值的组合,则删除行

转载 作者:行者123 更新时间:2023-12-02 20:33:39 25 4
gpt4 key购买 nike

我有以下数据:我需要删除具有 (ColX='F' 和 ColY='Y') 组合的所有行。我正在按照以下答案的建议尝试以下不同的代码。

  1. df = df[(df.ColX != 'F')&(df.ColY !='Y')]但此代码正在删除带有 (ColX=P 和 ColY=Y) 以及 (ColX=F 和 ColY=Y) 的所有行。我的数据中需要包含 (ColX=P 和 ColY=Y) 的行。

  2. 掩码 = (df.ColX == 'F') & (df.ColY == 'Y') df[~掩码]此代码不会删除我想要删除的任何行。

    3.mask = (df.ColX == 'F') | (df.ColY == 'Y')df[~掩码]此代码将删除带有 (ColX=P 和 ColY=Y) 以及 (ColX=F 和 ColY=Y) 的所有行。我的数据中需要包含 (ColX=P 和 ColY=Y) 的行。

任何意见都将受到高度赞赏。谢谢!

 line_date      ColX       ColY    ColZ   rating        rw    

2007-03-31 P Y 56 1.000000 56.000000
2007-03-10 P Y 67 1.000000 67.000000
2007-02-10 F Y 66 1.000000 66.000000
2007-01-13 2 83 0.880678 73.096278
2006-12-23 2 Y 88 0.793033 69.786942
2006-11-09 F 52 0.636655 33.106077
2006-10-22 P 66 0.581946 38.408408
2006-09-29 F Y 70 0.518825 36.317752

最佳答案

您可以使用DataFrame.query() method :

In [20]: df.query("ColX != 'F' or ColY != 'Y'")
Out[20]:
line_date ColX ColY ColZ rating rw
0 2007-03-31 P Y 56 1.000000 56.000000
1 2007-03-10 P Y 67 1.000000 67.000000
3 2007-01-13 2 NaN 83 0.880678 73.096278
4 2006-12-23 2 Y 88 0.793033 69.786942
5 2006-11-09 F NaN 52 0.636655 33.106077
6 2006-10-22 P NaN 66 0.581946 38.408408

关于python - 如果 python 中满足两列值的组合,则删除行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47822300/

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