簡體   English   中英

用選定的列表值填寫 dataframe 中的列

[英]Fill in column in dataframe with the selected list value

我在 excel 文件中有很多地址。 我已將其導入並存儲在 dataframe 中。 現在我想檢測每個地址中的狀態並將其顯示在新列中。 如何循環我的 dataframe 中的每一行並添加該行中的狀態值?

所有狀態列表:

allstates=['SELANGOR','JOHOR','KELANTAN','MALACCA','NEGERI SEMBILAN','PAHANG','PENANG','PERAK','PERLIS',
          'SABAH','SARAWAK','TERENGGANU','KUALA LUMPUR','K. LUMPUR','LABUAN','PUTRAJAYA']

以下是我希望我的 dataframe 的樣子:

Address                             |    States
-------------------------------------------------------
311 Jalan Springhill SELANGOR       |    *SELANGOR*
31 Jalan Segamat JOHOR              |    *JOHOR*

我希望將狀態(例如:SELANGOR)插入狀態列

嘗試這個:

df['States'] = df.Address.str.extract('({})'.format('|'.join(allstates)))

如果您確定(或希望)state 名稱僅出現在地址的末尾:

df['Sates'] = df.Address.str.extract('({})$'.format('|'.join(allstates)))

Output:

                         Address     Sates
0  311 Jalan Springhill SELANGOR  SELANGOR
1         31 Jalan Segamat JOHOR     JOHOR
import pandas as pd
data = pd.read_csv('states.csv')
print(data)
                         Address
0  311 Jalan Springhill SELANGOR
1         31 Jalan Segamat JOHOR

for index, row in data.iterrows():
    value = row.Address
    State = value.split()[-1:][0]
    data.loc[index,'State'] = State

print(data)
                         Address     State
0  311 Jalan Springhill SELANGOR  SELANGOR
1         31 Jalan Segamat JOHOR     JOHOR

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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