gpt4 book ai didi

Python .drop 没有给出我期望的结果

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

我有一个名为 xxx 的数据框。 xxx 的一列是 Final 并且 xxx 看起来像这样

  FpPropeTypCode DTE_DATE_DEATH             Area         Final  
0 FP NaN Ame_MidEast_Lnd NaN
1 FP NaN Southern_Europe W.E.M. Lines
2 FP NaN NaN NaN
3 ZP NaN Ame_MidEast_Lnd NaN
4 YY NaN Ame_MidEast_Lnd NaN

我想删除所有 Final 为 NaN 的行,所以我所做的是

xxx= xxx.drop(pd.isnull(data_file_fp4['Final']))

不幸的是我得到的是

  FpPropeTypCode DTE_DATE_DEATH             Area                         Final  
2 FP NaN NaN NaN
3 ZP NaN Ame_MidEast_Lnd NaN
4 YY NaN Ame_MidEast_Lnd NaN
5 NN NaN Ame_MidEast_Lnd NORTH ARM TRANSPORTATION LTD
6 CP NaN Northern_Europe MPC Group

这显然是不对的...

我实际需要做的是根据两个条件删除行:Final 为 NaN,Area 为 Ame_MidEast_Lnd。所以我不能真正使用dropna

我当前的代码仅仅满足第一个条件有什么问题?提前致谢。

最佳答案

你在使用 Pandas 吗? Pandas 有一个函数可以让你根据条件删除行,在这种情况下,某个列是 NaN: https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.dropna.html

您正在寻找的特定命令可能类似于:

xxx = xxx.dropna(axis=0, subset=['Final'])

axis=0 指定要删除行而不是列subset 指定要在“Final”为 NaN 的地方放置

编辑:提问者不能使用 dropna,因为他们的过滤器逻辑更复杂。

如果你想要更复杂的逻辑,你最好只做括号逻辑。我稍后会尝试验证,但你能试试这样吗:

xxx = xxx[~xxx['Final'].isnull()]

如果您想要逻辑的第二部分,即同时具有 NaN 过滤器和列过滤器的地方,您可以这样做:

xxx = xxx[~(xxx['Final'].isnull() & xxx['Area'].str.contains("Ame_MidEast_Lnd"))]

我已经通过运行下面的 python 文件验证了它是否有效:

import pandas as pd
import numpy as np

xxx = pd.DataFrame([
['FP', np.nan, 'Ame_MidEast_Lnd', np.nan],
['FP', np.nan, 'Southern_Europe', 'W.E.M. Lines'],
['FP', np.nan, np.nan, np.nan],
['ZP', np.nan, 'Ame_MidEast_Lnd', np.nan],
['YY', np.nan, 'Ame_MidEast_Lnd', np.nan]],
columns=['FpPropeTypCode','DTE_DATE_DEATH','Area', 'Final']
)

# before
print xxx

# whatever rows have both 'Final' as NaN and 'Area' containing Ame_MidEast_Lnd, we do NOT want those rows
xxx = xxx[~(xxx['Final'].isnull() & xxx['Area'].str.contains("Ame_MidEast_Lnd"))]

# after
print xxx

您会看到解决方案按照您希望的方式运行。

关于Python .drop 没有给出我期望的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45185618/

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