python – 使用pd.concat时添加标识原始数据框的列

我有一个数据框字典,如下所示:

test = {'df1':pd.DataFrame({'col1':[3, 5, 1, 4], 'col2':[3, 5, 1, 4]}), 'df2':pd.DataFrame({'col1':[3, 5, 1, 4], 'col2':[3, 5, 1, 4]}), 'df3':pd.DataFrame({'col1':[3, 5, 1, 4], 'col2':[3, 5, 1, 4]}), 'df4':pd.DataFrame({'col1':[3, 5, 1, 4], 'col2':[3, 5, 1, 4]})]

我想连接这些数据帧,但添加一个新列,它给出了“身份”(字典键名),该值来自哪个数据帧.如何才能做到这一点?如果我执行pd.concat(test.values()),我得到了我想要的连接但没有标识列.

谢谢,
插口

最佳答案 使用concat键

pd.concat(test.values(),keys=test.keys())
Out[261]: 
       col1  col2
df1 0     3     3
    1     5     5
    2     1     1
    3     4     4
df2 0     3     3
    1     5     5
    2     1     1
    3     4     4
df3 0     3     3
    1     5     5
    2     1     1
    3     4     4
df4 0     3     3
    1     5     5
    2     1     1
    3     4     4
点赞