【问题标题】:Removing rows in csv using Python [duplicate]使用Python删除csv中的行[重复]
【发布时间】:2020-05-11 00:41:02
【问题描述】:

我有一个名为 key_resp_5_rt 的列,我想在其中删除任何低于 300 毫秒的行(这是一个反应时间列)

for filename in files:
try:
    df=pd.read_csv(filename)

    df['key_resp_5.rt']

谁能告诉我下面的代码是否可以删除 rt 小于 0.3 秒的行?

    df[df['key_resp_5.rt'] > 0.3] 

当我事后检查值低于 0.3 的行仍然存在时,我不知道为什么

【问题讨论】:

  • key_resp_5.rt (print(df.dtypes)) 的数据类型是什么?一种猜测是它是一个字符串,而不是一个浮点数。您还必须将结果分配回原始数据框:df = df[[...]]
  • 基本上 pandas 数据帧是不可变的,因此您需要再次分配 df df = df[df['key_resp_5.rt'] > 0.3]
  • @nickthefreak 或者分配给一个新变量。

标签: python python-3.x pandas


【解决方案1】:

您需要再次将返回值分配给相同的变量才能替换它。这不会发生在原地:

df = df[df['key_resp_5.rt'] > 0.3]

【讨论】:

    猜你喜欢
    • 2021-08-09
    • 1970-01-01
    • 2015-11-16
    • 2021-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-02
    相关资源
    最近更新 更多