在 pandas 0.16+ 中,如何使用变量添加列来指示列名?

Posted

技术标签:

【中文标题】在 pandas 0.16+ 中,如何使用变量添加列来指示列名?【英文标题】:In pandas 0.16+ how can I add a column using a variable to indicate the column name? 【发布时间】:2020-02-06 18:11:16 【问题描述】:

您可以查看这个问题Here,在 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())

不行:这样一来,只添加了一个Column(并且命名为“new_col_name”)

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

我该怎么做?

【问题讨论】:

【参考方案1】:

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

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)

【讨论】:

以上是关于在 pandas 0.16+ 中,如何使用变量添加列来指示列名?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 query_to_pandas 中使用变量

如何使用具有多个源列的 pandas_udf 将多个列添加到 pyspark DF?

使用 Sylius 0.16 和 Payum 实施异地支付网关时如何完成订单

如何在 Python Pandas 回归模型中使用滞后时间序列变量?

在python变量中添加NaN?

在 pandas DataFrame 中,如何使用索引将“扁平化”变量“扁平化”成新列?