【问题标题】:Replace Values Using A CSV - Python [duplicate]使用 CSV 替换值 - Python [重复]
【发布时间】:2022-02-15 13:12:55
【问题描述】:

我在 CSV 文件中有两列,我们将它们分别称为“当前”和“新”。

我想将df['Names'] 中包含“Current”中的值的所有字符串替换为“New”中的对应值。

我当前的数据框:

Names
Joseph
Robert

我当前的代码:

df['Names'] = df['Names'].replace('Joseph', 'Joe') 
df['Names'] = df['Names'].replace('Robert', 'Rob') 

我的预期结果:

Names
Joe
Rob

但是,替换列表非常庞大,因此我需要一种更有效的方法来替换这些值。我需要使用 CSV 文件而不是字典来保存要替换的值。 CSV 文件“replace.csv”的设置如下:

Current New
Joseph Joe
Robert Rob

【问题讨论】:

  • 你能分享一个数据框的小例子和你的预期结果吗?
  • 不清楚为什么不能通过赋值一次替换整个列。 df['Names'] = New_values.
  • 感谢您的回复,但并非每个值都需要替换。某些名称(例如 John)没有缩写,而 CSV 文件仅包含需要更改缩写的名称列表。

标签: python pandas csv


【解决方案1】:

请检查这个问题。 Replacing few values in a pandas dataframe column with another value 查看 Preston 的答案。它应该对你有帮助。

基本上,这里的想法是,您可以构造一个字典,其中列名作为键,值作为另一个字典,其中需要更新的字符串。请参见下面的示例。 [复制自同一个答案]

您还可以将 dict 传递给 pandas.replace 方法

df.replace({
    'column_name': {
        'value_to_replace': 'replace_value_with_this',
        'foo': 'bar',
        'spam': 'eggs'
    },
    'other_column_name': {
        'other_value_to_replace': 'other_replace_value_with_this'
    },
    ...
})

【讨论】:

  • 感谢您的回答,有没有办法将我的 CSV 文件转换成该字典格式?
  • 您可以尝试从 csv 文件创建字典。参考这篇文章从 csv 文件创建字典 stackoverflow.com/questions/6740918/…
猜你喜欢
  • 2021-11-18
  • 1970-01-01
  • 2010-12-05
  • 1970-01-01
  • 2019-08-11
  • 1970-01-01
  • 2019-11-12
  • 1970-01-01
  • 2018-07-26
相关资源
最近更新 更多