kro*_*ens 30 python multi-index dataframe pandas
有谁知道是否可以使用DataFrame.loc方法从MultiIndex中进行选择?我有以下的数据帧,并希望能够访问位于"暂停"列中的值,在指数('at', 1),('at', 3),('at', 5),等(非连续).
我希望能够做data.loc[['at',[1,3,5]], 'Dwell']类似于data.loc[[1,3,5], 'Dwell']常规索引(返回3个成员的Dwell值系列)的语法.
我的目的是选择数据的任意子集,仅对该子集执行一些分析,然后使用分析结果更新新值.我打算使用相同的语法为这些数据设置新值,因此链接选择器在这种情况下不会真正起作用.
这是我正在使用的DataFrame的一部分:
Char Dwell Flight ND_Offset Offset
QGram
at 0 a 100 120 0.000000 0
1 t 180 0 0.108363 5
2 a 100 120 0.000000 0
3 t 180 0 0.108363 5
4 a 20 180 0.000000 0
5 t 80 120 0.108363 5
6 a 20 180 0.000000 0
7 t 80 120 0.108363 5
8 a 20 180 0.000000 0
9 t 80 120 0.108363 5
10 a 120 180 0.000000 0
Run Code Online (Sandbox Code Playgroud)
谢谢!
chr*_*isb 39
如果您使用的是版本0.14,则只需将元组传递给.loc如下所示:
df.loc[('at', [1,3,4]), 'Dwell']
Run Code Online (Sandbox Code Playgroud)
Rol*_*Max 13
尝试横截面索引:
In [68]: df.xs('at', level='QGram', drop_level=False).loc[[1,4]]
Out[68]:
Char Dwell Flight ND_Offset Offset
QGram
at 1 t 180 0 0.108363 5
4 a 20 180 0.000000 0
Run Code Online (Sandbox Code Playgroud)
小智 6
loc方法是多索引最好的朋友。但是,您必须了解 loc 如何在多索引上工作。在多索引上使用 loc 时,必须在 loc 中指定每个其他索引值,例如:
df.loc['indexValue1', 'indexValue2', 'indexValue3']
Run Code Online (Sandbox Code Playgroud)
然而,正如您可能想象的那样,如果您不知道所有其他值是什么,这可能会很痛苦,所以我们当然可以使用“:”
df.loc[:, 'value1', 'value2', :]
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助!
| 归档时间: |
|
| 查看次数: |
33990 次 |
| 最近记录: |