当前位置: 首页 > 知识库问答 >
问题:

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

马新觉
2023-03-14

正如你可以在这个问题中检查的,在熊猫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\u col\u name”)

预期结果是,给定一个具有列[“a”、“B”、“C”]的表,该表将具有列[“a”、“B”、“C”、“a_nancount”、“B_nancount”、“C_nancount”]

我怎么能那样做?

共有1个答案

勾起运
2023-03-14

根据本回复的内容,我认为最好的解决方案如下:

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)
 类似资料:
  • 我正在学习JAVA。如果我想在列表中添加一些变量。我知道的是这样的: 如果我有很多变量呢。例如,从a到z,我是否需要像这样手动添加它? 因为我声明了100个变量,需要将它们添加到列表中。我们有其他方法可以更聪明地添加它们吗?Eclipse或Intellij中有热键吗? 感谢您的帮助。

  • 嗨,我想通过使用mutate函数来创建一个新变量Foldchange。但是我想使用来自同一列的值来计算这个值。有没有什么方法可以计算一个新变量,从同一列中折叠更改,而无需重新排列表格,这样表格就不需要拆分了? 下面是一个清晰的例子: 我想要的输出类似于使用: 获取 显然,我不能使用此代码基于V1和V2变量进行选择,但这只是为了说明。我希望通过这种方式,我可以保持我的附加表的完整性,折叠更改将具有重

  • 问题内容: 我正在分析一个相当糟糕的旧数据库/代码库,试图通过将查询合并到联接中来减少服务器负载(包括电子邮件警报cron作业,该作业通常会调用超过一百万个单独的查询)。 这会吐出120列… 为了帮助我分析如何构造新查询,如果我可以在结果中的列前面加上来自JOIN的表的前缀,那就太好了。 有没有办法做到这一点? 问题答案: 你可以 那么这些列将至少按表顺序返回。 为了更好地区分每两列列,您还可以添

  • 问题内容: 我有一个带有Tag列的表,其中包含大约1000个不同的标签。我想为每个不同的标签创建一个带有列的新表,该列名称将是标签值。使用T- SQL是否有一种简便的方法来做到这一点?SQL Server 2005及更高版本中的任何内容都可以。 这是我的意思的示例: 更新: 我知道限制(在表中的列数上),但是列不会稀疏,并且任何列中都不会有null或0值。 我想要此表的原因是我想针对此新表的列运行

  • 问题内容: 我有此表变量声明后跟一个查询: 并定义如下: 当我在SQL Management Studio中针对SQL Server 2005 Express运行它时,得到以下信息: 消息208,第16级,状态1,第24行 无效的对象名称“ @CurrentItems”。 实际的问题是什么,我该如何解决? 问题答案: 您已经别名了,所以只需使用: 还要看看您的查询中是否有类似的内容。什么是CU?您

  • 我的文件夹根目录上有一个。env文件。这是我的。环境 我试图访问application.yml上的PORT变量,但它没有从。env文件中读取变量。这是我的申请。yml