如何替换数据帧中类似的值?

2024-05-15 11:27:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我刚接触熊猫。我的数据集中有以下数据类型(数据集是从Kaggle下载的印度创业基金。)

Date                datetime64[ns]
StartupName                 object
IndustryVertical            object
CityLocation                object
InvestorsName               object
InvestmentType              object
AmountInUSD                 object
dtype: object

data['AmountInUSD'].groupby(data['CityLocation']).describe()

我做了上面的操作,发现很多城市是相似的,比如

Bangalore   
Bangalore / Palo Alto
Bangalore / SFO
Bangalore / San Mateo
Bangalore / USA
Bangalore/ Bangkok

我想做以下操作,但我不知道这个代码

在CityLocation列中,找到所有以“Bang”开头的单元格,并将它们全部替换为“Bangalore”。感谢您的帮助。

是我干的

data[data.CityLocation.str.startswith('Bang')] 

我不知道以后该怎么办


Tags: 数据datadateobject数据类型nsbangkaggle
2条回答

熊猫0.23有一个处理文本的好方法。参见文档Working with Text Data。可以使用regular expressions捕获和替换文本

import pandas as pd
df = pd.DataFrame({'CityLocation': ["Bangalore / Palo Alto", "Bangalore / SFO", "Other"]})

df['CityLocation'] = df['CityLocation'].str.replace("^Bang.*", "Bangalore")

print(df)

将屈服

  CityLocation
0    Bangalore
1    Bangalore
2        Other

可以使用loc函数在子字符串匹配的列中查找值,并用所选的值替换

import pandas as pd

df = pd.DataFrame({'CityLocation': ['Bangalore', 'Dangerlore', 'Bangalore/USA'], 'Values': [1, 2, 3]})
print(df)
#     CityLocation  Values
# 0      Bangalore       1
# 1     Dangerlore       2
# 2  Bangalore/USA       3


df.loc[df.CityLocation.str.startswith('Bang'), 'CityLocation'] = 'Bangalore'
print(df)
#   CityLocation  Values
# 0    Bangalore       1
# 1   Dangerlore       2
# 2    Bangalore       3

相关问题 更多 >