首页 > 解决方案 > 在 pandas 0.16+ 中,如何使用变量添加列来指示列名?

问题描述

正如您可以在此问题中查看的那样在 Pandas 0.16+ 中添加列的最佳方法是

df = df.assign(new_column = Something)

其中 new_column 实际上是新列的名称(即使它没有写成字符串)。

这对我来说是个问题,因为我想添加许多列,其名称由变量指定

我试过这个:

for col in df.columns:
    new_col_name = col + "_nancount" 
    test = test.assign(new_col_name = test[col].isna().sum())

它不起作用:这样,只添加了一个列(并且它被命名为“new_col_name”)

预期的结果是,给定一个包含列 ["A", "B", "C"] 的表有一个包含列 ["A", "B", "C", "A_nancount", "B_nancount" 的表, "C_nancount"]

我怎样才能做到这一点?

标签: pythonpandas

解决方案


按照这里回复的内容我认为最好的解决方案如下:

df = df.assign(**{col1: Something, col2: Something})

就我而言:

new_col_dict = {}
for col in df.columns:
    new_col_dict[col + "_nancount"] = test[col].isna().sum()
    test = test.assign(**new_col_dict)

推荐阅读