簡體   English   中英

如何替換pandas數據框中的相似值?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM