我正在嘗試連接兩個 DataFrame,然后使用我提供的鍵訪問連接的結果。但是,它似乎沒有按照檔案作業,我想知道我在這里做錯了什么。
df0 = pd.DataFrame([[1, 2], [3, 4]], columns=["col1", "col2"])
df1 = pd.DataFrame([[5, 7], [9, 11]], columns=["col1", "col2"])
dfcomb = pd.concat([df0, df1], keys=["df0", "df1"])
dfcomb
Out[82]:
col1 col2
df0 0 1 2
1 3 4
df1 0 5 7
1 9 11
dfcomb.index
Out[83]:
MultiIndex([('df0', 0),
('df0', 1),
('df1', 0),
('df1', 1)],
)
到現在為止還挺好。我們有一個多級索引。現在,根據檔案:
分層索引的重要特征之一是您可以通過標識資料中的子組的“部分”標簽來選擇資料。部分選擇會以與在常規 DataFrame 中選擇列完全類似的方式在結果中“降低”層次索引的級別。
所以,我應該能夠使用 dfcomb["df0"] 訪問 df0 行,對嗎?不!
dfcomb["df0"]
Traceback (most recent call last):
...
File "C:\Users\user\Anaconda3\envs\test_updatd_env\lib\site-packages\pandas\core\indexes\base.py", line 3363, in get_loc
raise KeyError(key) from err
KeyError: 'df0'
為什么這不起作用?
uj5u.com熱心網友回復:
在MultiIndex在dfcomb是在指數,而不是列,所以你必須使用.loc[],而不只是[]:
>>> dfcomb.loc['df0']
col1 col2
0 1 2
1 3 4
uj5u.com熱心網友回復:
嘗試使用 loc
df0 = pd.DataFrame([[1, 2], [3, 4]], columns=["col1", "col2"])
df1 = pd.DataFrame([[5, 7], [9, 11]], columns=["col1", "col2"])
dfcomb = pd.concat([df0, df1], keys=["df0", "df1"])
print(dfcomb)
label="df0"
print(dfcomb.loc[label])
輸出
col1 col2
0 1 2
1 3 4
?
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/383044.html
