【问题标题】:Naming pandas columns with variables用变量命名 pandas 列
【发布时间】:2021-02-09 13:16:55
【问题描述】:

我有一个元组列表,其中包含数据框列的所有可能组合。我想通过组合这些列的值来创建新的数据框列。

示例数据框

d = {'c1':['a', 'b', 'c'], 'c2':['Low', 'Low', 'High'], 'c3':['True', 'True', 'False']}
dd = pd.DataFrame(data=d)

长度为 2 的所有可能的列组合

from itertools import combinations 
com = list(combinations(dd.columns, 2))

返回[('c1', 'c2'), ('c1', 'c3'), ('c2', 'c3')]

我想用以上组合创建新列

例如,创建一个组合列 dd['c1 + c2'] = dd['c1'] + '+' + dd['c2']

    c1  c2      c1 + c2
0   a   Low     a+Low
1   b   Low     b+Low
2   c   High    c+High

真正的数据框有很多列,所以我想通过循环遍历元组列表并使用变量作为数据框的新列名来自动化该过程。

类似这样的:

[dd[f'dd[i[0]] + dd[i[1]]'] = dd[i[0]] + '+' + dd[i[1]] for i in com]

dd[i[0]] = 'c1' 和 dd[i[1]] = 'c2'

我很确定我不能在数据框列中使用 f 字符串,但不知道如何使它工作。

【问题讨论】:

标签: pandas


【解决方案1】:

做事

for i in com:
    dd[f'{i[0]} + {i[1]}']= dd[i[0]] + '+' + dd[i[1]] 
    

【讨论】:

  • 新的列名将变为“i[0] + i[1]”,但我希望列名为“c1 + c2”
猜你喜欢
  • 1970-01-01
  • 2017-10-23
  • 1970-01-01
  • 2023-03-30
  • 2020-05-14
  • 2022-06-11
  • 1970-01-01
  • 1970-01-01
  • 2021-07-18
相关资源
最近更新 更多