替换列Pandas中的数据框文本中的特定字符串

时间:2017-07-11 10:01:20

标签: python pandas

我目前在更换pandas数据帧中的字符串时遇到了困难。所以我要更改的字符串是"private" - > "pte""limited" - > "ltd"

表格如下:

Column: Company_Name
 1. XXXX private limited
 2. XX (private) limited
 3. yyy pte. limited

我的代码是:

df['company_name'].str.replace('.*private.+*','pte')
df['company_name'].str.replace('limited$','ltd)
print(df)

但我仍然得到与使用pandas读取完全相同的数据帧。有人知道为什么 - 我检查过我导入了吗?

3 个答案:

答案 0 :(得分:1)

str.replace不是一个就地操作,您必须将值分配回df [' company_name']

答案 1 :(得分:1)

查找

import pandas as pd

index = [1,2,3]
columns = ['company_name']
data =  ['XXXX private limited','XX (private) limited','yyy pte. limited']
df = pd.DataFrame(data, index=index, columns=columns)

df['company_name'] = df['company_name'].str.replace('private','pte')
df['company_name'] = df['company_name'].str.replace('limited$','ltd')

结果:

 company_name
1  XXXX pte ltd
2  XX (pte) ltd
3  yyy pte. ltd

现在,您必须搜索如何删除()。符号。

祝你有个美好的一天,

MARCUS

答案 2 :(得分:0)

上面的答案是对的。 另一个选择是你可以使用inplace的原则。

代码应该是:

df['company_name'].str.replace('.*private.+*','pte' , inplace = True)
df['company_name'].str.replace('limited$','ltd, inplace = True)

因此,数据框df可以立即更新