简体   繁体   中英

Create a DataFrame from a dictionary of DataFrames

I have a dictionary of DataFrames, where the keys are assumed to be meaningful:

In [32]: x = pd.DataFrame(dict(foo=[1,2,3], bar=[4,5,6])).set_index('foo')
In [33]: y = pd.DataFrame(dict(foo=[7,8,9], bar=[10,11,12])).set_index('foo')
In [34]: z = dict(x=x, y=y)

Which looks like:

In [43]: x
Out[43]: 
     bar
foo     
1      4
2      5
3      6

In [44]: y
Out[44]: 
     bar
foo     
7     10
8     11
9     12

Is there a nice way to get the following DataFrame:

    foo  bar
x   1    4
    2    5
    3    6
y   7    10
    8    11
    9    12

You can use concat for this, and the keys of the dictionary will automatically be used for a new index level:

In [6]: z = dict(x=x, y=y)

In [7]: pd.concat(z)
Out[7]:
       bar
  foo
x 1      4
  2      5
  3      6
y 7     10
  8     11
  9     12

You can also give this new index level a name using the names argument of concat (eg names=['key'] ).

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM