使用值

时间:2018-03-21 17:30:35

标签: python python-2.7 pandas

所有

要替换一个特定列中的一个字符串,我已经完成了这个并且它工作正常:

dataUS['sec_type'].str.strip().str.replace("LOCAL","CORP")

我现在想用一个字符串替换多个字符串,用" CORP&替换[" LOCAL"," FOREIGN"," HELLO"] #34;

如何让它发挥作用?下面的代码没有用

dataUS['sec_type'].str.strip().str.replace(["LOCAL", "FOREIGN", "HELLO"], "CORP")

5 个答案:

答案 0 :(得分:2)

replace可以接受dict,我们只是为那些需要替换的值创建一个字典

dataUS['sec_type'].str.strip().replace(dict(zip(["LOCAL", "FOREIGN", "HELLO"], ["CORP"]*3)),regex=True)

dict的信息

dict(zip(["LOCAL", "FOREIGN", "HELLO"], ["CORP"]*3))
Out[585]: {'FOREIGN': 'CORP', 'HELLO': 'CORP', 'LOCAL': 'CORP'}

您收到错误的原因

str.replacereplace

不同

答案 1 :(得分:2)

您可以通过形成一个| -separated字符串来执行此任务。这有效,因为pd.Series.str.replace接受正则表达式:

  

用一些替换系列/索引中出现的模式/正则表达式   其他字符串。相当于str.replace()或re.sub()。

这避免了创建字典的需要。

import pandas as pd

df = pd.DataFrame({'A': ['LOCAL TEST', 'TEST FOREIGN', 'ANOTHER HELLO', 'NOTHING']})

pattern = '|'.join(['LOCAL', 'FOREIGN', 'HELLO'])

df['A'] = df['A'].str.replace(pattern, 'CORP')

#               A
# 0     CORP TEST
# 1     TEST CORP
# 2  ANOTHER CORP
# 3       NOTHING

答案 2 :(得分:1)

尝试:

dataUS.replace({"sec_type": { 'LOCAL' : "CORP", 'FOREIGN' : "CORP"}})

答案 3 :(得分:1)

用于替换熊猫系列中多个值的功能:

def replace_values(series, to_replace, value): for i in to_replace: series = series.str.replace(i, value) return series

希望这对某人有帮助

答案 4 :(得分:0)

@Rakesh的答案非常简洁,但不允许有子字符串。但是,只需稍作更改即可。

  1. 使用替换字典,因为它使它更加通用
  2. 将关键字参数regex=True添加到Series.replace()(不是Series.str.replace)实际上可以完成两件事:它将替换项替换为regex替换项,它的功能要强大得多,但是您必须转义特殊字符。当心。其次,它将使替换工作对子字符串而不是整个字符串起作用。真的很棒!
replacement = {
    "LOCAL": "CORP",
    "FOREIGN": "CORP",
    "HELLO": "CORP"
}

dataUS['sec_type'].replace(replacement, regex=True)

完整代码示例

dataUS = pd.DataFrame({'sec_type': ['LOCAL', 'Sample text LOCAL', 'Sample text LOCAL sample FOREIGN']})

replacement = {
    "LOCAL": "CORP",
    "FOREIGN": "CORP",
    "HELLO": "CORP"
}

dataUS['sec_type'].replace(replacement, regex=True)

输出

0                            CORP
1                            CORP
2                Sample text CORP
3    Sample text CORP sample CORP
Name: sec_type, dtype: object