是否可以在数据框行中追加列名?
输入:
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
我被困在这里,找不到任何解决办法。
答案 0 :(得分:2)
在熊猫中使用重复的列名称并不容易,但是可能:
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()
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]