【发布时间】:2016-04-25 19:00:08
【问题描述】:
我需要删除 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])
对于这种方法,我尝试使用列索引号和列名来处理子集值。数据框仍然是空的。
方法二: 来源:Deleting DataFrame row in Pandas based on column value
df = df[df.C.notnull()]
仍然导致空数据框!
我做错了什么?
【问题讨论】:
-
df.dropna(subset=['C']) -
并且第二种方法不返回空数据框。会不会是您第一次尝试清空数据框的情况?
-
是的,方法2应该也可以
-
我很肯定数据框已满,因为我之前已经直接在线打印了它。 @MaxU df.dropna(subset=["C"]) 打印一个完整的数据帧,包括空值!太令人沮丧了。