在pandas DataFrame

时间:2017-10-23 08:10:39

标签: python pandas

我是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

1 个答案:

答案 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