我目前在更换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读取完全相同的数据帧。有人知道为什么 - 我检查过我导入了吗?
答案 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
可以立即更新