我在Excel表中有以下数据,我想将其作为多索引数据读取:
Y1 Y1 Y2 Y2
B H1 H2 H1 H2
1 80 72 79.2 84.744
2 240 216 237.6 254.232
3 40 36 39.6 42.372
4 160 144 158.4 169.488
5 240 216 237.6 254.232
6 0 0 0 0我将其解读为:
DATA = pd.read_excel('data.xlsx',sheet_name=None)因为我也在看其他的床单。
问题1:
此数据不作为多索引数据读取。我怎么把它读成多个索引呢?或者我应该把它读成一个数据,然后把它转换成多个索引?作为数据读取的当前结果
DATA['Load']
Y1 Y1.1 Y2 Y2.1
bus H1 H2 H1 H2
1 80 72 79.2 84.744
2 240 216 237.6 254.232
3 40 36 39.6 42.372
4 160 144 158.4 169.488
5 240 216 237.6 254.232
6 0 0 0 0问题2,可能是最基本的问题:
当一个或多个索引位于列侧时,如何处理多个索引?在本例中,我希望通过指定B, Y, H来访问数据。当多个索引都作为索引时,我知道如何使用它们,但是当索引出现在列上时,我不知道它的诀窍。
非常感谢你的帮助:)
PS:
另一张纸可能如下所示:
from to x ratea
1 2 0.4 10
1 4 0.6 80
1 5 0.2 10
2 3 0.2 10
2 4 0.4 10
2 6 0.3 10
3 5 0.2 10
4 6 0.3 10其中,我将from和to设为set (set_index(['from','to']),以获得多索引数据。
发布于 2018-10-31 23:58:05
要向多索引用户读取这样的数据格式,请在pd.read_excel()中使用标头param
df = pd.read_excel('myFile.xlsx', header=[0,1])
Y1 Y2
B H1 H2 H1 H2
1 80 72 79.2 84.744
2 240 216 237.6 254.232
3 40 36 39.6 42.372
4 160 144 158.4 169.488
5 240 216 237.6 254.232
6 0 0 0.0 0.000这意味着您要告诉熊猫您有两个标题行0和1。
在我们谈话之后:
df = pd.read_excel('Book2.xlsx', header=[0,1])
df2 = df.unstack().to_frame()
idx = df2.swaplevel(0,2).swaplevel(1,2).index.set_names(['B', 'Y', 'H'])
df2.set_index(idx, inplace=True)
0
B Y H
1 Y1 H1 80.000
2 Y1 H1 240.000
3 Y1 H1 40.000
4 Y1 H1 160.000
5 Y1 H1 240.000
6 Y1 H1 0.000
1 Y1 H2 72.000
2 Y1 H2 216.000
3 Y1 H2 36.000
4 Y1 H2 144.000
5 Y1 H2 216.000
6 Y1 H2 0.000
1 Y2 H1 79.200
2 Y2 H1 237.600
3 Y2 H1 39.600
4 Y2 H1 158.400
5 Y2 H1 237.600
6 Y2 H1 0.000
1 Y2 H2 84.744
2 Y2 H2 254.232
3 Y2 H2 42.372
4 Y2 H2 169.488
5 Y2 H2 254.232
6 Y2 H2 0.000https://stackoverflow.com/questions/53093409
复制相似问题