Pandas 使用变量命名列
我有一个元组列表,其中包含数据帧列的所有可能组合。我想通过组合这些列的值来创建新的dataframe列 示例数据帧Pandas 使用变量命名列,pandas,Pandas,我有一个元组列表,其中包含数据帧列的所有可能组合。我想通过组合这些列的值来创建新的dataframe列 示例数据帧 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.
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']
真正的dataframe有许多列,因此我希望通过循环遍历元组列表并使用变量作为dataframe的新列名来自动化这个过程
大概是这样的:
[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字符串,但我不知道如何使其工作。就这样做吧
for i in com:
dd[f'{i[0]} + {i[1]}']= dd[i[0]] + '+' + dd[i[1]]
照办
for i in com:
dd[f'{i[0]} + {i[1]}']= dd[i[0]] + '+' + dd[i[1]]
类似于:类似于:新列名将成为i[0]+i[1],但我希望列名为c1+c2@Osca检查更新新列名将变为i[0]+i[1],但我希望列名为c1+c2@Osca检查更新