Python 如何将列名添加到每个值?
如何将pandas列的名称添加到行中的每个值?例如,假设我有以下pandas数据框: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
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问题,效率非常低,因为您现在会将数字列转换为对象字符串,该字符串存储了更多的空间,并且不允许相同的良好矢量化。也许你应该质疑你的理由。谢谢,我对类型有意见。。。我不知道我能做一件事