带有第一行数据的Concat列名,Python 3.6 Dataframe

SPy*_*SPy 5 python dataframe python-3.x pandas

我想将数据帧第一行的数据添加到其列名并删除第一行.

源数据框架:

2013K2  2013K3  2013K4  2013K5
ABC1    ABC2    ABC3    ABC4
324 5435    543 543
6543    543 657 765
765 876 876 9876
Run Code Online (Sandbox Code Playgroud)

需要将列名重命名为列名+'|'+第一行数据:

2013K2|ABC1 2013K3|ABC2 2013K4|ABC3 2013K5|ABC4
324 5435    543 543
6543    543 657 765
765 876 876 9876
Run Code Online (Sandbox Code Playgroud)

WeN*_*Ben 7

IIUC

df.columns=df.columns+'|'+df.iloc[0,:]
df.iloc[1:,]
Out[41]: 
0 2013K2|ABC1 2013K3|ABC2 2013K4|ABC3 2013K5|ABC4
1         324        5435         543         543
2        6543         543         657         765
3         765         876         876        9876
df=df.iloc[1:,]
df
Out[43]: 
0 2013K2|ABC1 2013K3|ABC2 2013K4|ABC3 2013K5|ABC4
1         324        5435         543         543
2        6543         543         657         765
3         765         876         876        9876
Run Code Online (Sandbox Code Playgroud)


Sco*_*ton 5

你可以像这样做,使用Tset_index,然后用多指标列合并到一个单一的列标题mapformat.

df_out = df.T.set_index(0, append=True).T

df_out.columns = df_out.columns.map('{0[0]}|{0[1]}'.format)

df_out
Run Code Online (Sandbox Code Playgroud)

输出:

  2013K2|ABC1 2013K3|ABC2 2013K4|ABC3 2013K5|ABC4
1         324        5435         543         543
2        6543         543         657         765
3         765         876         876        9876
Run Code Online (Sandbox Code Playgroud)