我有一个名为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
我想删除所有行有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\u middeast\u Lnd。所以我不能真正使用dropna
在我现在的代码中,仅仅做第一个条件有什么错?提前谢谢。你知道吗
你在用熊猫吗?Pandas有一个函数,允许您根据条件删除行,在本例中,某个列是NaN: https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.dropna.html
您要查找的特定命令可能类似于:
axis=0指定要删除行而不是列 subset指定要删除“Final”为NaN的位置
编辑:asker不能使用dropna,因为它们的过滤逻辑更复杂。他说
如果你想要更复杂的逻辑,你最好只做括号逻辑。我马上就去核实一下,你能不能试试这样的办法:
如果您需要逻辑的第二部分,其中既有NaN过滤器又有列过滤器,您可以这样做:
我已经通过运行下面的python文件验证了这一点:
您将看到解决方案按您希望的方式工作。他说
相关问题 更多 >
编程相关推荐