如何使用 Pandas 删除对应列具有负值的任何行?
How to delete any row for which a corresponding column has a negative value using Pandas?
我得到了一个 CSV 数据文件。使用 JupyterHub,Python 和 Pandas 我已经能够读取数据框并删除了任何具有 NaN 值的行。
我希望对任何负值做同样的事情。
我试图在该网站上搜索类似的问题,但似乎找不到适合的解决方案。
下面是我如何删除带有 NaN 的行
请帮忙!
df=pd.read_csv("cereal.csv")
df1=df.dropna(how='any',axis =0).reset_index(drop=True)
df1.shape
df1.head()
您可以使用 pandas.DataFrame.drop
删除特定列中值为负的行,如下所示:
import pandas as pd
df = pd.DataFrame({
'colA': [-1, 2, 3, 4, None],
'colB': [True, True, False, False, True],
})
df = df.drop(df.index[df['colA'] < 0])
输出:
>>> df
colA colB
1 2.0 True
2 3.0 False
3 4.0 False
4 NaN True
另一个选项,语法相似但不使用 .drop
。保留不满足条件的行(~
作为否定):
>>> df.loc[~(df['colA'] < 0)]
colA colB
1 2.0 True
2 3.0 False
3 4.0 False
4 NaN True
还有一个,供您选择,具体取决于您是否需要“colA”中的 NaN 值:
>>> df.loc[df['colA'] >= 0)]
colA colB
1 2.0 True
2 3.0 False
3 4.0 False
我得到了一个 CSV 数据文件。使用 JupyterHub,Python 和 Pandas 我已经能够读取数据框并删除了任何具有 NaN 值的行。 我希望对任何负值做同样的事情。 我试图在该网站上搜索类似的问题,但似乎找不到适合的解决方案。 下面是我如何删除带有 NaN 的行 请帮忙!
df=pd.read_csv("cereal.csv")
df1=df.dropna(how='any',axis =0).reset_index(drop=True)
df1.shape
df1.head()
您可以使用 pandas.DataFrame.drop
删除特定列中值为负的行,如下所示:
import pandas as pd
df = pd.DataFrame({
'colA': [-1, 2, 3, 4, None],
'colB': [True, True, False, False, True],
})
df = df.drop(df.index[df['colA'] < 0])
输出:
>>> df
colA colB
1 2.0 True
2 3.0 False
3 4.0 False
4 NaN True
另一个选项,语法相似但不使用 .drop
。保留不满足条件的行(~
作为否定):
>>> df.loc[~(df['colA'] < 0)]
colA colB
1 2.0 True
2 3.0 False
3 4.0 False
4 NaN True
还有一个,供您选择,具体取决于您是否需要“colA”中的 NaN 值:
>>> df.loc[df['colA'] >= 0)]
colA colB
1 2.0 True
2 3.0 False
3 4.0 False