Pandas数据帧中的过滤

2024-04-26 09:43:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用以下命令加载csv数据文件时产生了一个数据帧:

df = pd.read_csv(data_path, header=0, delimiter="|",dtype=object)
print df.head(3) 

其结构如下

^{pr2}$

我使用以下命令筛选出Val2行等于0.00000000:

df=[df.Val2 != "0.00000000"]
df.head(3) 

我希望结果是一个只有非零值的数据帧。但是我得到了这个错误:“list”对象没有属性“head”

我错过了什么?在


Tags: csv数据path命令dfreaddataobject
2条回答

df.Val2 != "0.00000000"本质上返回一个序列(或list),这就是为什么在满足条件的行中,True和不满足条件的行中出现False的布尔值的错误'list' object has no attribute 'head'

正如EdChum提到的那样,您需要将该列表传递回原始数据帧,以便对其进行筛选并仅获取返回True的行。在

你有个打字错误:

df=df[df.Val2 != "0.00000000"]

但从根本上比较浮动是有问题的,您可以使用^{}来比较具有公差的浮动:

^{pr2}$

相关问题 更多 >