Python 如何将列名添加到每个值?

Python 如何将列名添加到每个值?,python,python-3.x,pandas,Python,Python 3.x,Pandas,如何将pandas列的名称添加到行中的每个值?例如,假设我有以下pandas数据框: COL1 COL2 COL3 COL4 ... COL_N True NO 90.9 2 ... 2018-05-17 20:14:00 True NO 89.11 2 ... 2018-05-17 20:15:32 ............ True N

如何将pandas列的名称添加到行中的每个值?例如,假设我有以下pandas数据框:

COL1     COL2      COL3     COL4 ...   COL_N
True      NO       90.9      2   ...  2018-05-17 20:14:00
True      NO       89.11     2   ...  2018-05-17 20:15:32

                    ............

True      NO       67.89     1   ...  2018-05-17 20:18:45
我怎样才能把它变成:

COL1          COL2         COL3          COL4 ...   COL_N
True (COL1)    NO (COL2)    90.9 (COL3)   2 (COL4)   ...  2018-05-17 20:14:00 (COL_N)
True (COL1)    NO (COL2)    89.11 (COL3)  2 (COL4)  ...  2018-05-17 20:15:32 (COL_N)

                    ............

True (COL1)    NO (COL2)    67.89 (COL3)  1 (COL4)  ...  2018-05-17 20:18:45 (COL_N)
我想这样做是因为我在分析每行中的一些模式。其中一个问题是,我正在处理一个大熊猫数据帧500x100000列。知道给定数据框如何将其列名附加到每个值上吗?

使用:

df.astype(str).apply(lambda x : x+' '+x.name)
Out[7]: 
        COL1     COL2        COL3    COL4
0  True COL1  NO COL2   90.9 COL3  2 COL4
1  True COL1  NO COL2  89.11 COL3  2 COL4

另一种方法是循环列并使用loc

for col in df.columns:
    df.loc[:,col] = df[col].astype(str) + ' ({})'.format(col)

这听起来像是一个XY问题,效率非常低,因为您现在会将数字列转换为对象字符串,该字符串存储了更多的空间,并且不允许相同的良好矢量化。也许你应该质疑你的理由。谢谢,我对类型有意见。。。我不知道我能做一件事