Python 在数据帧中存储三维数据
我是Python新手,我试图理解如何使用数据帧操作数据。我搜索了类似的问题,但没有发现任何能满足我确切需求的问题。如果这是重复的,请给我指出正确的帖子 因此,我有多个具有完全相同形状、列和索引的数据帧。如何将它们与标签结合起来,以便使用任何列/索引/标签轻松访问数据 例如,在下面的设置之后,我如何将df1和df2放在一个数据帧中,并用名称“df1”和“df2”标记它们,以便我能够以类似df['a']['df1']['b']的方式访问数据,并获得df的行数Python 在数据帧中存储三维数据,python,pandas,Python,Pandas,我是Python新手,我试图理解如何使用数据帧操作数据。我搜索了类似的问题,但没有发现任何能满足我确切需求的问题。如果这是重复的,请给我指出正确的帖子 因此,我有多个具有完全相同形状、列和索引的数据帧。如何将它们与标签结合起来,以便使用任何列/索引/标签轻松访问数据 例如,在下面的设置之后,我如何将df1和df2放在一个数据帧中,并用名称“df1”和“df2”标记它们,以便我能够以类似df['a']['df1']['b']的方式访问数据,并获得df的行数 >>> import
>>> 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
我认为,
multi-indexdataframe
是由以下内容创建的答案:
然后,对于基本选择,可以使用:
对于“选择索引”和“列”,请使用:
另一个可能的解决方案是使用
但在新版本的熊猫中是如此。非常感谢!是的,看起来我需要的是多索引数据帧。是否可以将df['A']转换为二维数据帧,其中['A','b']作为索引,['df1','df2']作为列?我认为可以,只添加
axis=1
像df=pd.concat([df1,df2],key=('df1','df2'),axis=1)
然后通过idx=pd.indexlice
打印(df.loc['b',idx['df1','A'])或df=pd.concat([df1,df2],keys=('df1','df2'))。取消堆栈(0)
?然后打印(df.xs('A',axis=1))
?@jezrael hi jezrael我正在尝试通过循环连接许多PD来执行相同的操作。我如何正确地连接这些键?我尝试制作一个列表,然后逐渐添加,但返回“不能将不具有相同级别数的索引合并”(这实际上是有道理的)
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
print (df.xs('df1'))
A B
a 1 2
b 3 4
idx = pd.IndexSlice
print (df.loc[idx['df1', 'b'], 'A'])
3