Nay*_*ale 2 python expand split dataframe pandas
我有一个像这样一列的熊猫数据框:
| 合并_城市 |
|---|
| 纽约、威斯康星、亚特兰大 |
| 东京、京都、铃木 |
| 巴黎、波尔多、里昂 |
| 孟买、德里、班加罗尔 |
| 伦敦、曼彻斯特、伯明翰 |
我想要一个新的数据框,输出如下:
| 合并_城市 | 城市 |
|---|---|
| 纽约、威斯康星、亚特兰大 | 纽约 |
| 纽约、威斯康星、亚特兰大 | 威斯康星州 |
| 纽约、威斯康星、亚特兰大 | 亚特兰大 |
| 东京、京都、铃木 | 东京 |
| 东京、京都、铃木 | 京都 |
| 东京、京都、铃木 | 铃木 |
| 巴黎、波尔多、里昂 | 巴黎 |
| 巴黎、波尔多、里昂 | 波尔多 |
| 巴黎、波尔多、里昂 | 里昂 |
| 孟买、德里、班加罗尔 | 孟买 |
| 孟买、德里、班加罗尔 | 德里 |
| 孟买、德里、班加罗尔 | 班加罗尔 |
| 伦敦、曼彻斯特、伯明翰 | 伦敦 |
| 伦敦、曼彻斯特、伯明翰 | 曼彻斯特 |
| 伦敦、曼彻斯特、伯明翰 | 伯明翰 |
简而言之,我想将所有城市拆分为不同的行,同时保留“Merged_Cities”列。
这是一个可复制的版本df:
df = pd.DataFrame({'Merged_Cities':['New York, Wisconsin, Atlanta',
'Tokyo, Kyoto, Suzuki',
'Paris, Bordeaux, Lyon',
'Mumbai, Delhi, Bangalore',
'London, Manchester, Bermingham']})
Run Code Online (Sandbox Code Playgroud)
使用.str.split()和.explode():
df = df.assign(Cities=df["Merged_Cities"].str.split(", ")).explode("Cities")
print(df)
Run Code Online (Sandbox Code Playgroud)
印刷:
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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
58 次 |
| 最近记录: |