У меня ниже фрейм данных, и я пытаюсь разделить столбец name на first_name и last_name на основе пробела, однако для некоторых имен нет разделителя, и в таких случаях я хочу взять значение в фамилии и оставить пустое в имени.
Один из возможных способов - перебрать все строки и использовать условие if-else для каждой строки, однако, как указано в этом сообщении .
«Итерация в Pandas - это анти-шаблон, и вы должны делать это только тогда, когда исчерпали все остальные варианты». поэтому я ищу способ добиться этого в Pandas.
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