簡體   English   中英

根據值比較從數據框中刪除行時出錯

[英]Error while dropping row from dataframe based on value comparison

我在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]

它不會產生任何錯誤,但不會刪除行。

如何解決這個問題?

這是您的操作方法。 只需使用所需的列名更改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'])]

您可以使用dropna

testData = testData.dropna(subsets = 'BsmtUnfSF']

假設您的dataFrame:

>>> df
    col1
0   1473
1   1093
2   1346
3   1324
4    NaN
5   1129
6     58
7    847
8     54
9    831
10   816

您有多種解決方案:

>>> 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM