2017-12-28 17 views
3

データフレームの最初の行のデータをその列名&の最初の行を削除して追加します。最初の行のデータを持つConcat列名、Python 3.6 Dataframe

ソースDATAFRAME:

2013K2 2013K3 2013K4 2013K5 
ABC1 ABC2 ABC3 ABC4 
324 5435 543 543 
6543 543 657 765 
765 876 876 9876 

は、列名+として、列名を変更する必要がある '|' 最初の行の+データ:

2013K2|ABC1 2013K3|ABC2 2013K4|ABC3 2013K5|ABC4 
324 5435 543 543 
6543 543 657 765 
765 876 876 9876 

答えて

5

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 
+0

ありがとうございました... –

+0

@ faithon.gvr.pyああ、yw〜ハッピーコーディング – Wen

5

あなたはTと​​を使用して、このようにそれを行うことができますマルチインデックス列をmapformatを使用して1つの列見出しに結合します。

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

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

df_out 

出力:

2013K2|ABC1 2013K3|ABC2 2013K4|ABC3 2013K5|ABC4 
1   324  5435   543   543 
2  6543   543   657   765 
3   765   876   876  9876 
+1

おかげどういたしましてfaithon.gvr.py @たくさん... –

+0

エイムスとデータフレームを変更します。お役に立てて嬉しいです。 –

2

次のワンライナーを使用することができます。

In [148]: df = df.rename(columns=lambda x: x+'|'+df.iloc[0][x]).iloc[1:] 

In [149]: df 
Out[149]: 
    2013K2|ABC1 2013K3|ABC2 2013K4|ABC3 2013K5|ABC4 
1   324  5435   543   543 
2  6543   543   657   765 
3   765   876   876  9876 
+0

ニースワンライナー。 +1 –

+0

@ScottBoston、ありがとうございます! :) – MaxU

+1

ニースは新しいことを学ぶ:-) – Wen

0

一つはシンプルforループおよびその他の基本的な機能を使用することができます列nの新しいリストを作成する

newcols = []    # empty list to have new column names 
for i in range(len(df.columns)): 
    newcols.append(df.columns[i]+'|'+df.iloc[0,i]) # make and add new name to list 
df.columns = newcols  # assign column names 
df = df.iloc[1:,:]  # exclude first row 

print(df) 

出力:

2013K2|ABC1 2013K3|ABC2 2013K4|ABC3 2013K5|ABC4 
1   324  5435   543   543 
2  6543   543   657   765 
3   765   876   876  9876 
関連する問題