我是Python的新手,我正在尝试了解如何使用pandas DataFrames操作数据。我搜索了类似的问题,但我没有看到任何满足我的确切需求。如果这是重复的,请指出正确的帖子。
所以我有多个具有完全相同的形状,列和索引的DataFrame。如何将它们与标签结合使用,以便我可以使用任何列/索引/标签轻松访问数据?
E.g。在下面的设置之后,我如何将df1和df2放入一个DataFrame并用名称'df1'和'df2'标记它们,所以我可以像df ['A'] ['df1'] [d]那样访问数据'b'],得到df的行数?
>>> import numpy as np
>>> import pandas as pd
>>> df1 = pd.DataFrame([[1, 2], [3, 4]], columns=['A', 'B'], index=['a', 'b'])
>>> df2 = pd.DataFrame([[5, 6], [7, 8]], columns=['A', 'B'], index=['a', 'b'])
>>> df1
A B
a 1 2
b 3 4
>>> df2
A B
a 5 6
b 7 8
答案 0 :(得分:3)
我认为MultiIndex DataFrame
是由concat
创建的答案:
df = pd.concat([df1, df2], keys=('df1','df2'))
print (df)
A B
df1 a 1 2
b 3 4
df2 a 5 6
b 7 8
然后,对于基本选择,可以使用xs
:
print (df.xs('df1'))
A B
a 1 2
b 3 4
对于选择索引和列,使用slicers:
idx = pd.IndexSlice
print (df.loc[idx['df1', 'b'], 'A'])
3
另一种可能的解决方案是使用panels。
但是在新版本的熊猫中deprecated。