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.