![](/img/trans.png)
[英]How do I use groupby on continuous similar values for a pandas dataframe?
[英]How do I replace the similar looking values in a pandas dataframe?
我是熊猫的新手。 我的数据集中有以下数据类型。 (该数据集是从Kaggle下载的Indian Startup Funding。)
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')]
在此之后我不知道该怎么办
您可以使用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
pandas 0.23有一个很好的方法来处理文本。 请参阅使用文本数据的文档。 您可以使用正则表达式来捕获和替换文本。
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.