gpt4 book ai didi

python - pandas 中导入 Excel 文件的多重索引问题

转载 作者:太空宇宙 更新时间:2023-11-03 18:22:20 30 4
gpt4 key购买 nike

我导入了一张 Excel 文件并在 panda DataFrame 中对其进行了解析。

path = 'bla.xls'
x = pd.ExcelFile(path)
sheets = x.sheet_names
table = x.parse(sheets[36], header=2)

这似乎有效,并且 DataFrame-object 具有预期的 MultiIndex-index:

In[180]: table.index
Out[180]: MultiIndex(levels=[[u'Gesamt', u'Studiengang Hochschulbenennung'], [u'Bekleidungstechnik', u'Betriebswirtschaft', u'Biomedical Engineering', u'Ernährungs- und Hygienetechnik', u'Facility Management', u'Kommunikations- und Softwaretechnik', u'Lebensmittel, Ernährung, Hygiene', u'Maschinenbau', u'Pharmatechnik', u'Systems Engineering', u'Textil- und Bekleidungsmanagement', u'Wirtschaftsinformatik', u'Wirtschaftsingenieurwesen', u'Wirtschaftsingenieurwesen - Produktionsmanagement insbes. Fahrzeugwirtschaft'], [u'% innerhalb von Studiengang Hochschulbenennung', u'Anzahl']],
labels=[[1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1], [1, -1, 3, -1, 6, -1, 7, -1, 5, -1, 9, -1, 0, -1, 10, -1, 8, -1, 11, -1, 2, -1, 12, -1, 13, -1, 4, -1, -1, -1], [1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0]])

不幸的是,我无法选择一行:

In [181]: table.ix[('Studiengang Hochschulbenennung', 'Betriebswirtschaft')]
Out[182]: KeyError: 'Key length (2) was greater than MultiIndex lexsort depth (0)'

事实上:

In [182]: table.index.lexsort_depth
Out[182]: 0

In [183]:len(table.index.levels)
Out[183]: 3

...这是不连贯的,是吗?

如何解决此问题并将 table.index.lexsort_depth 增加到 3

编辑:与另一个 question 有连接类似的问题得到了很好的回答。

最佳答案

在选择行之前,您需要对数据框进行排序:

table.sort(inplace=True)
table.ix[('Studiengang Hochschulbenennung', 'Betriebswirtschaft')]

排序后,

In [21]: df.index.lexsort_depth 
Out[21]: 3

关于python - pandas 中导入 Excel 文件的多重索引问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23871506/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com