用所选列表值填充dataframe中的列

2024-09-24 02:13:35 发布

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

我在excel文件里有很多地址。我已经导入它并将其存储在dataframe中。现在我想检测每个地址中的状态并在新列中显示它。如何循环数据帧中的每一行并添加该行中的状态值?你知道吗

所有州的名单:

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

下面是我想要的数据帧:

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

我想要美国(例如:雪兰莪州)在“状态”列中插入


Tags: 文件数据dataframe状态地址excel名单状态值
2条回答

试试这个:

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

如果您确定(或希望)州名称仅出现在地址末尾:

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

输出:

                         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

相关问题 更多 >