首页 > 解决方案 > 使用 python pandas 从现有列创建新的地图列

问题描述

我有一个熊猫数据框,它具有可变数量的列,例如 C1、C2、C3、F1、F2 ...... F100。我需要将 F1、F2 .. F100 组合成一列 dict/map 数据类型,如下所示。我如何使用熊猫来做到这一点?C1、C2、C3 是固定名称列,而 F1、F2、F100 是可变名称。

输入:

C1  C2  C3  F1  F2  F100

"1" "2" "3" "1" "2" "100"

输出:

C1  C2  C3  Features

"1" "2" "3" {"F1":"1", "F2":"2", "F100": "100"}

标签: pythonpandas

解决方案


filter+to_dict

df['Features'] = df.filter(like='F').to_dict('records')

输出:df

  C1 C2 C3 C4 F1 F2 F3 F4                                      Features
0  1  2  3  4  5  6  7  8  {'F1': '5', 'F2': '6', 'F3': '7', 'F4': '8'}
1  x  y  z  w  r  e  s  t  {'F1': 'r', 'F2': 'e', 'F3': 's', 'F4': 't'}
2  a  b  c  d  d  f  g  h  {'F1': 'd', 'F2': 'f', 'F3': 'g', 'F4': 'h'}

推荐阅读