#python #pandas #dataframe
#python #pandas #фрейм данных
Вопрос:
import pandas as pd
sample_dataframe = pd.DataFrame(columns = [column_1, column_2, column_3, column_4] )
sample_data = [(78, 89), (77, 45), (54, 90)]
Я хочу вставить sample_data
в sample_dataframe
таким образом, чтобы column_1
и column_2
были заполнены значениями из данных, а остальные столбцы будут заполнены значениями NaN для всех строк.
Я не могу добавить данные в фрейм данных во время его создания. Данные необходимо добавить позже, после определения структуры фрейма данных.
Какой самый простой способ сделать это?
Это результат, который я хочу :
> sample_dataframe
column1 column2 column3 column4
78 89 NaN NaN
77 45 NaN NaN
54 90 NaN NaN
Комментарии:
1. Просто назначьте их:
sample_dataframe[["column1", "column2"]] = pd.DataFrame(sample_data)
Ответ №1:
Чтобы избежать проблем с индексами, вы могли бы использовать assign
для обновления подмножества столбцов. Вы можете назначить либо только что созданный фрейм данных:
cols = ['column_1', 'column_2']
sample_dataframe.assign(**pd.DataFrame(sample_data, columns=cols))
column_1 column_2 column_3 column_4
0 78 89 NaN NaN
1 77 45 NaN NaN
2 54 90 NaN NaN
Или путем распаковки словаря:
sample_dataframe.assign(**dict(zip(cols,zip(*sample_data))))