gpt4 book ai didi

python - Pandas Dataframe : split column into multiple columns, 右对齐不一致的单元格条目

转载 作者:IT老高 更新时间:2023-10-28 20:38:14 32 4
gpt4 key购买 nike

我有一个 pandas 数据框,其中有一列名为“城市、州、国家/地区”。我想将此列分成三个新列,“City”、“State”和“Country”。

0                 HUN
1 ESP
2 GBR
3 ESP
4 FRA
5 ID, USA
6 GA, USA
7 Hoboken, NJ, USA
8 NJ, USA
9 AUS

将列拆分为三列已经很简单了:

location_df = df['City, State, Country'].apply(lambda x: pd.Series(x.split(',')))

但是,这会创建左对齐的数据:

     0       1       2
0 HUN NaN NaN
1 ESP NaN NaN
2 GBR NaN NaN
3 ESP NaN NaN
4 FRA NaN NaN
5 ID USA NaN
6 GA USA NaN
7 Hoboken NJ USA
8 NJ USA NaN
9 AUS NaN NaN

如何创建数据右对齐的新列?我是否需要遍历每一行,计算逗号的数量并单独处理内容?

最佳答案

我会做如下的事情:

foo = lambda x: pd.Series([i for i in reversed(x.split(','))])
rev = df['City, State, Country'].apply(foo)
print rev

0 1 2
0 HUN NaN NaN
1 ESP NaN NaN
2 GBR NaN NaN
3 ESP NaN NaN
4 FRA NaN NaN
5 USA ID NaN
6 USA GA NaN
7 USA NJ Hoboken
8 USA NJ NaN
9 AUS NaN NaN

我认为这可以满足您的需求,但如果您还想美化事物并获得城市、州、国家/地区列顺序,您可以添加以下内容:

rev.rename(columns={0:'Country',1:'State',2:'City'},inplace=True)
rev = rev[['City','State','Country']]
print rev

City State Country
0 NaN NaN HUN
1 NaN NaN ESP
2 NaN NaN GBR
3 NaN NaN ESP
4 NaN NaN FRA
5 NaN ID USA
6 NaN GA USA
7 Hoboken NJ USA
8 NaN NJ USA
9 NaN NaN AUS

关于python - Pandas Dataframe : split column into multiple columns, 右对齐不一致的单元格条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23317342/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com