【问题标题】:How to change all values in a csv file cloumn using python using pandas如何使用 python 使用 pandas 更改 csv 文件列中的所有值
【发布时间】:2020-07-25 11:40:01
【问题描述】:

我有一个看起来像这样的数据集

                                          Title_name  ...  Check
0  Did 7 Children Die in Senegal from COVID-19 Va...  ...  False
1   Should Fabric Masks Be Sanitized in a Microwave?  ...  False
2  Is Mike Pence Waving a Confederate Flag in Thi...  ...  False
3  Is Bill Gates Being Sued by India Over Vaccina...  ...  False
4       Did the New York Jets Sign Colin Kaepernick?  ...  False

[5 rows x 3 columns]

我想将“检查”列的值从 False 更改为我尝试使用的 Fake

df['Check'] = df.Check.str.replace('False', 'True')

我收到类似这样的数据类型错误

raise AttributeError("Can only use .str accessor with string values!")
AttributeError: Can only use .str accessor with string values!

我看到了一些使用 csv 文件的解决方案,但想知道如何使用 pandas 并替换所有没有标题的 cloumn 值。

【问题讨论】:

  • 检查列是布尔数据类型,因此字符串替换不起作用。改用replace
  • 您的“检查”列是布尔类型(只有 2 个值 True 和 False),所以基本上如果您想将 False 更改为 True,整个列将等于 True。你可以实现这个df['Check'] = True

标签: python python-3.x pandas csv dataset


【解决方案1】:

你的几乎是正确的。问题是 pandas 将 False 检测为布尔值。这就是为什么它给你这个错误。您只需首先将类型更改为字符串。像这样:

#First change the type to string
df['Check'] = df.Check.astype(str).str.replace('False', 'True')

#You can also change it to Fake
#df['Check'] = df.Check.astype(str).str.replace('False', 'Fake')

【讨论】:

  • 谢谢,这工作得很好,如果我理解它磨损但 astype() 强制它是字符串,请纠正我??
【解决方案2】:

Check 列的类型是布尔值。你可以检查

df.Check.dtype

如果你想使用替换

df.astype(str).replace('False','True') 

【讨论】:

    猜你喜欢
    • 2017-04-04
    • 2020-07-11
    • 2020-08-30
    • 1970-01-01
    • 1970-01-01
    • 2021-03-08
    • 2022-01-23
    • 2018-11-05
    • 1970-01-01
    相关资源
    最近更新 更多