gpt4 book ai didi

python - Pandas - 如果不存在分隔符,则使用默认值拆分列

转载 作者:行者123 更新时间:2023-12-01 21:30:50 26 4
gpt4 key购买 nike

我有以下数据框,我试图根据空格将“名称”列拆分为名字和姓氏,但是对于某些名称,没有分隔符,在这种情况下,我想取姓中的值并留空以名字命名。

一种可能的方法是遍历所有行并对每一行使用 if-else 条件,但是如 this post 中所述.

“Pandas 中的迭代是一种反模式,只有在用尽所有其他选项时才应该这样做。”所以我正在寻找一种在 Pandas 中实现这一点的方法。 p>

names_df = pd.read_csv(io.BytesIO(obj['Body'].read()))
print(names_df)
names_df[['first_name', 'last_name']] = names_df['name'].str.split(' ', expand=True)
print(names_df)
ValueError: Columns must be same length as key
order_id      name        product_id  product_price
0 Thanos Ipad 800
1 Hulk AC 400
2 C America Ipad 760
3 Black Panther IPhone 1100

预期数据框:

first_name   last_name   
Thanos
Hulk
C America
Black Panther

最佳答案

这是我能够想出的解决方案,不确定它是否是最佳的,但它有效

df = pd.DataFrame({'name': ['Thanos', 'Hulk', 'Black Panther', 'C Amarica']})                                    

def split_name(name):
split_name = name.split(' ')
return split_name if len(split_name) == 2 else ['', split_name[0]]

pd.DataFrame(df.name.apply(split_name).tolist(), columns=['first_name', 'last_name'])

first_name last_name
0 Thanos
1 Hulk
2 Black Panther
3 C Amarica

关于python - Pandas - 如果不存在分隔符,则使用默认值拆分列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62486686/

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