2 回答

TA貢獻1798條經驗 獲得超7個贊
根據(jù)您的結果,您可以rename_axis
獲取reset_index
第一級索引作為新列:
(pd.concat(frames,keys=['df1','df2','df3'])
.rename_axis(['src',None])
.reset_index(level=0))
src A B C D
0 df1 A0 B0 C0 D0
1 df1 A1 B1 C1 D1
2 df1 A2 B2 C2 D2
3 df1 A3 B3 C3 D3
4 df2 A4 B4 C4 D4
5 df2 A5 B5 C5 D5
6 df2 A6 B6 C6 D6
7 df2 A7 B7 C7 D7
8 df3 A8 B8 C8 D8
9 df3 A9 B9 C9 D9
10 df3 A10 B10 C10 D10
11 df3 A11 B11 C11 D11

TA貢獻1865條經驗 獲得超7個贊
frames = [df1, df2, df3]
for i in range(len(frames)):
frames[i]['src'] = "df"+str(i+1)
# result = pd.concat(frames,keys=['df1','df2','df3'])
result = pd.concat(frames)
print(result)
A B C D src
0 A0 B0 C0 D0 df1
1 A1 B1 C1 D1 df1
2 A2 B2 C2 D2 df1
3 A3 B3 C3 D3 df1
4 A4 B4 C4 D4 df2
5 A5 B5 C5 D5 df2
6 A6 B6 C6 D6 df2
7 A7 B7 C7 D7 df2
8 A8 B8 C8 D8 df3
9 A9 B9 C9 D9 df3
10 A10 B10 C10 D10 df3
11 A11 B11 C11 D11 df3
添加回答
舉報