在元组索引的 DataFrame 中获取单行

问题描述 投票:0回答:1

我有一只熊猫

DataFrame
:

>>> f = pd.DataFrame.from_dict({"r0":{"c0":1,"c1":2},("r",1):{"c0":3,"c1":4}},orient="index")
        c0      c1
r0      1       2
(r, 1)  3       4

我可以得到第一行:

>>> list(f.loc["r0"].items())
[('c0', 1), ('c1', 2)]

但不是第二行,因为

f.loc[("r",1)]
会提高
KeyError

我想我能做到

>>> list(f.loc[[("r",1)]].iloc[0].items())
[('c0', 3), ('c1', 4)]

但这实在是难以形容的丑陋。

什么是正确的方法?

python pandas dataframe indexing
1个回答
0
投票

我认为 MultiIndex 的格式不正确。 你可以试试这个吗

index = pd.MultiIndex.from_tuples([('r0',), ('r', 1)], names=['level_0', 'level_1'])
data = {'c0': [1, 3], 'c1': [2, 4]}
f = pd.DataFrame(data, index=index)
© www.soinside.com 2019 - 2024. All rights reserved.