Заполнение только выбранных столбцов данными и добавление остатка со значениями NaN во фрейме данных pandas

#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))))