我在dataframe列中具有以下唯一值。
['1473' '1093' '1346' '1324' 'NA' '1129' '58' '847' '54' '831' '816']
我要删除此列中有'NA'
的行。
testData = testData[testData.BsmtUnfSF != "NA"]
出现错误
TypeError: invalid type comparison
然后我尝试了
testData = testData[testData.BsmtUnfSF != np.NAN]
它不会产生任何错误,但不会删除行。
如何解决此问题?
答案 0 :(得分:0)
这是您的操作方法。只需将column
更改为所需的列名即可。
import pandas as pd
import numpy as np
df = pd.DataFrame({"column": [1,2,3,np.nan,6]})
df = df[np.isfinite(df['column'])]
答案 1 :(得分:0)
您可以使用dropna
testData = testData.dropna(subsets = 'BsmtUnfSF']
答案 2 :(得分:0)
假设您的dataFrame:
>>> df[pd.notnull(df['col1'])]
col1
0 1473
1 1093
2 1346
3 1324
5 1129
6 58
7 847
8 54
9 831
10 816
>>> df[df.col1.notnull()]
# df[df['col1'].notnull()]
col1
0 1473
1 1093
2 1346
3 1324
5 1129
6 58
7 847
8 54
9 831
10 816
>>> df.dropna(subset=['col1'])
col1
0 1473
1 1093
2 1346
3 1324
5 1129
6 58
7 847
8 54
9 831
10 816
>>> df.dropna()
col1
0 1473
1 1093
2 1346
3 1324
5 1129
6 58
7 847
8 54
9 831
10 816
>>> df[~df.col1.isnull()]
col1
0 1473
1 1093
2 1346
3 1324
5 1129
6 58
7 847
8 54
9 831
10 816
{{1}}