首页 > 解决方案 > 仅用数据填充选定的列,并在 pandas 数据框中使用 NaN 值附加剩余部分

问题描述

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_datasample_dataframe并且column_1column_2填充数据中的值,其余列将填充所有行的 NaN 值。

在创建数据框时,我无法将数据添加到数据框中。在定义数据框的结构后,需要稍后添加数据。

最简单的方法是什么?

这是我想要的输出:

> sample_dataframe

column1 column2 column3 column4
78      89      NaN     NaN
77      45      NaN     NaN
54      90      NaN     NaN

标签: pythonpandasdataframe

解决方案


为避免索引出现问题,您可以使用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))))

推荐阅读