假設我有這個數據幀大熊貓:用不同的列名的concat數據幀
id x y
0 a hello
0 b test
1 c hi
2 a hi
3 d bar
我想Concat的X和Y到像這樣的單個列保持它們的ID
id x
0 a
0 b
1 c
2 a
3 d
0 hello
0 test
1 hi
2 hi
3 bar
又如何如果我想爲concat列給出一個新名稱? (例如, 'X' 到 'XY')
假設我有這個數據幀大熊貓:用不同的列名的concat數據幀
id x y
0 a hello
0 b test
1 c hi
2 a hi
3 d bar
我想Concat的X和Y到像這樣的單個列保持它們的ID
id x
0 a
0 b
1 c
2 a
3 d
0 hello
0 test
1 hi
2 hi
3 bar
又如何如果我想爲concat列給出一個新名稱? (例如, 'X' 到 'XY')
我不認爲pandas.concat
包括設置新的column
名(see docs)的選項,但你可以指定像這樣:
id x y
0 0 a hello
1 0 b test
2 1 c hi
3 2 a hi
4 3 d bar
df.set_index('id', inplace=True)
pd.DataFrame(pd.concat([df.x, df.y]), columns=['xy']).reset_index()
id xy
0 0 a
1 0 b
2 1 c
3 2 a
4 3 d
5 0 hello
6 0 test
7 1 hi
8 2 hi
9 3 bar
起價
如果行的順序並不重要,你可以使用stack
:
print df
id x y
0 0 a hello
1 0 b test
2 1 c hi
3 2 a hi
4 3 d bar
s = df.set_index('id').stack()
s.index = s.index.droplevel(-1)
s.name = 'xy'
print pd.DataFrame(s).reset_index()
id xy
0 0 a
1 0 hello
2 0 b
3 0 test
4 1 c
5 1 hi
6 2 a
7 2 hi
8 3 d
9 3 bar
我不希望我的ID設置爲指數做。它應該仍然是一列 – arkisle