我需要删除 C 列中具有空值的所有行。代码如下:
infile="C:\****"
df=pd.read_csv(infile)
A B C D
1 1 NaN 3
2 3 7 NaN
4 5 NaN 8
5 NaN 4 9
NaN 1 2 NaN
我尝试过两种基本方法。
方法一: 来源:How to drop rows of Pandas DataFrame whose value in certain columns is NaN
df.dropna()
结果是一个空数据帧,这是有道理的,因为每行都有一个 NaN 值。
df.dropna(subset=[3])
对于此方法,我尝试使用列索引号和列名称来处理子集值。数据框仍然是空的。
方法2: 来源:Deleting DataFrame row in Pandas based on column value
df = df[df.C.notnull()]
仍然会产生空数据框!
我做错了什么?
最佳答案
df = pd.DataFrame([[1,1,np.nan,3],[2,3,7,np.nan],[4,5,np.nan,8],[5,np.nan,4,9],[np.nan,1,2,np.nan]], columns = ['A','B','C','D'])
df = df[df['C'].notnull()]
df
关于python - 根据列值删除数据框中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36848928/