Pandas Python:在每行中追加列名

Pandas Python:在每行中追加列名,pandas,Pandas,有没有办法在数据帧行中追加列名 输入: cv cv mg mg 5g 5g 0% zinsenzin 输出: cv cv col_name mg mg col_name 5g 5g cv 0% zinsenzin mg 我试过了,但没用 list_col = list(df) for i in list_col: if i != i.shift(1) df['new_col'] = i 我被困在这里,找不到任何解

有没有办法在数据帧行中追加列名

输入:

cv  cv  mg  mg
5g  5g  0% zinsenzin
输出:

cv  cv  col_name    mg    mg      col_name
5g  5g  cv          0% zinsenzin   mg
我试过了,但没用

list_col = list(df)
for i in list_col:
    if i != i.shift(1)
    df['new_col'] = i

我被困在这里,找不到任何解决方案。

在pandas中,使用重复的列名称并不容易,但可能:

c = 'cv cv mg mg sa sa ta ta at at ad ad an av av ar ar ai ai ca ca ch ch ks ks ct ct ce ce cw cw dt dt fr fr fs fs fm fm it it lg lg mk mk md md mt mt ob ob ph ph pb pb rt rt sz sz tg tg tt tt vv vv yq yq fr fr ms ms lp lp ts ts mv mv'.split()


真实数据中存在重复的列名?@jezrael是真实数据中存在重复的列。是否存在所有重复的列名?@jezrael,是,是否存在所有重复的列名感谢您的解决方法。出于好奇,这里的c是什么?如何在我的数据帧中定义它?是的,它们位于两个同名列的集合中。如果我的列数超过这些列,该怎么办?出现以下错误:AttributeError:'numpy.ndarray'对象没有属性'stop',我有唯一的列集合,直接从文件读取:[cv-cv-mg-sa-ta-ta-at-ad-and-av-ar-ar-ai-ca-ch-ks-ct-ce-cw-dt-fr-fr-fs-fm-it-lg-lg-mk-md-mt-ob-ph-pb-rt-sz-sz-tg-tg-tt-vv-vv-yq-fr-fr-ms-lp-ts-mv]
df = pd.DataFrame([range(77)], columns=c)
print (df)
   cv  cv  mg  mg  sa  sa  ta  ta  at  at  ...  fr  fr  ms  ms  lp  lp  ts  \
0   0   1   2   3   4   5   6   7   8   9  ...  67  68  69  70  71  72  73   

   ts  mv  mv  
0  74  75  76  

[1 rows x 77 columns]

df = pd.concat([v.assign(new_col=k) for k, v in df.groupby(axis=1,level=0,sort=False)],axis=1)
print (df)
   cv  cv new_col  mg  mg new_col  sa  sa new_col  ta  ... new_col  lp  lp  \
0   0   1      cv   2   3      mg   4   5      sa   6  ...      ms  71  72   

  new_col  ts  ts new_col  mv  mv new_col  
0      lp  73  74      ts  75  76      mv  

[1 rows x 115 columns]