我正在使用pandas中的multiindexing数据框,并且想知道我是否应该多行索引行或列。多重索引行与大熊猫的列DataFrame
我的数据看起来是这样的:
代码:
import numpy as np
import pandas as pd
arrays = pd.tools.util.cartesian_product([['condition1', 'condition2'],
['patient1', 'patient2'],
['measure1', 'measure2', 'measure3']])
colidxs = pd.MultiIndex.from_arrays(arrays,
names=['condition', 'patient', 'measure'])
rowidxs = pd.Index([0,1,2,3], name='time')
data = pd.DataFrame(np.random.randn(len(rowidxs), len(colidxs)),
index=rowidxs, columns=colidxs)
在这里,我选择多指标列,与大熊猫数据帧由一系列的理由,我的数据最终是一串时间序列(因此在这里按时间索引)。
我有这个问题,因为它似乎有行和列之间的一些不对称multiindexing。例如,在this文档网页中,它显示query
如何工作于行多索引数据帧,但是如果数据帧是列多索引,则文档中的命令必须用df.T.query('color == "red"').T
之类的内容替换。
我的问题看起来可能有点愚蠢,但我想看看在数据框的多重索引行与列之间是否有区别(如上面的query
例子)。
谢谢。
这真的取决于你想如何操纵,输出和查看你的数据。我怀疑行上的多索引更有用(可能更有效,但我真的不知道)。如果你打算操纵按列索引的数据范围,那么是的,多列对你来说更好。 – Will
这是一个很好的问题,因为某些领域的数据集通常是时间序列,但可能会分成一系列类别,如示例中所示。按列分析MultiIndex会有帮助。 – Hamid