#python #pandas
#питон #панды
Вопрос:
У меня есть ряд кортежей формы ('Name', Number)
, и я хотел бы разделить их на два столбца, один из которых — имя, другой — номер.
Я бы хотел, чтобы в итоге получилось что-то вроде этого:
Tuple Name Number
('Scott Smith', 56) Scott Smith 56
('Anna Frank', 100) Anna Frank 100
('Seth Morris', 32) Seth Morris 32
Я пробовал несколько итераций разделения строк, применения лямбда-функции и т.д., но, похоже, не могу правильно выполнить этот простой процесс.
Комментарии:
1. Вероятно, вам следует изучить ‘распаковку кортежей в Python’. Это простой способ получить доступ к элементам внутри кортежа.
Ответ №1:
Создайте новый фрейм данных и назначьте его обратно фрейму данных
пример df
:
Tuple
0 (Scott Smith, 56)
1 (Anna Frank, 100)
2 (Seth Morris, 32)
df_final = df.assign(**pd.DataFrame(df.Tuple.tolist(), columns=['Name','Number']))
Out[170]:
Tuple Name Number
0 (Scott Smith, 56) Scott Smith 56
1 (Anna Frank, 100) Anna Frank 100
2 (Seth Morris, 32) Seth Morris 32
Ответ №2:
Сначала преобразуйте ряд в фрейм данных с to_frame
помощью . Затем вы можете использовать zip
для назначения новых столбцов:
df = s.to_frame('Tuple')
df['Name'], df['Number'] = zip(*df['Tuple'])