对Pandas数据帧执行拆分并创建一个新帧



我有一个pandas数据帧,其中一列如下:

Merged_Cities
纽约、威斯康星州、亚特兰大
东京、京都、铃木
巴黎、波尔多、里昂
孟买、德里、班加罗尔
伦敦、曼彻斯特、伯明罕

使用.str.split().explode():

df = df.assign(Cities=df["Merged_Cities"].str.split(", ")).explode("Cities")
print(df)

打印:

Merged_Cities      Cities
0    New York, Wisconsin, Atlanta    New York
0    New York, Wisconsin, Atlanta   Wisconsin
0    New York, Wisconsin, Atlanta     Atlanta
1            Tokyo, Kyoto, Suzuki       Tokyo
1            Tokyo, Kyoto, Suzuki       Kyoto
1            Tokyo, Kyoto, Suzuki      Suzuki
2           Paris, Bordeaux, Lyon       Paris
2           Paris, Bordeaux, Lyon    Bordeaux
2           Paris, Bordeaux, Lyon        Lyon
3        Mumbai, Delhi, Bangalore      Mumbai
3        Mumbai, Delhi, Bangalore       Delhi
3        Mumbai, Delhi, Bangalore   Bangalore
4  London, Manchester, Bermingham      London
4  London, Manchester, Bermingham  Manchester
4  London, Manchester, Bermingham  Bermingham

这与@AndrejKesely的答案非常相似,只是它合并了df和其索引上的城市。

# Create pandas.Series from splitting the column on ', '
s = df['Merged_Cities'].str.split(', ').explode().rename('Cities')
# Merge df with s on their index
df = df.merge(s, left_index=True, right_index=True)
# Result
print(df)
Merged_Cities      Cities
0    New York, Wisconsin, Atlanta    New York
0    New York, Wisconsin, Atlanta   Wisconsin
0    New York, Wisconsin, Atlanta     Atlanta
1            Tokyo, Kyoto, Suzuki       Tokyo
1            Tokyo, Kyoto, Suzuki       Kyoto
Merged_Cities      Cities
0    New York, Wisconsin, Atlanta    New York
0    New York, Wisconsin, Atlanta   Wisconsin
0    New York, Wisconsin, Atlanta     Atlanta
1            Tokyo, Kyoto, Suzuki       Tokyo
1            Tokyo, Kyoto, Suzuki       Kyoto
1            Tokyo, Kyoto, Suzuki      Suzuki

相关内容

最新更新