Pandas: 多索引整数二级切片
Pandas: Multi-index second-level slicing by integer
我有一个多索引数据框,如下所示:
In [45]: df
Out[45]:
Last Days to expiry
Date Ticker
1988-06-23 COU88 15.65 48 days
COV88 15.65 78 days
1988-06-24 COU88 15.65 47 days
COV88 15.56 77 days
COX88 15.75 108 days
1988-06-27 COU88 15.10 44 days
COV88 15.30 74 days
1988-06-28 COU88 15.27 43 days
COV88 15.27 73 days
1988-06-29 COU88 14.97 42 days
COV88 14.92 72 days
1988-06-30 COU88 14.85 41 days
COV88 14.80 71 days
索引有两个级别(即'Date'和'Ticker')。
我想用整数对它进行切片,将所有日期放在第一行,这意味着第一个代码。结果应如下所示:
Last Days to expiry
Date Ticker
1988-06-23 COU88 15.65 48 days
1988-06-24 COU88 15.65 47 days
1988-06-27 COU88 15.10 44 days
1988-06-28 COU88 15.27 43 days
1988-06-29 COU88 14.97 42 days
1988-06-30 COU88 14.85 41 days
此外,如果可能的话,我想过滤列以仅获取名为 'Last' 的列。我无法获得 df.iloc
的正确语法
非常感谢您的提示
您可以 groupby
在第一个索引级别上调用 first
:
In [173]:
df.groupby(level='Date').first()
Out[173]:
Last Days to expiry
Date
1988-06-23 15.65 48 days
1988-06-24 15.65 47 days
1988-06-27 15.10 44 days
1988-06-28 15.27 43 days
1988-06-29 14.97 42 days
1988-06-30 14.85 41 days
我有一个多索引数据框,如下所示:
In [45]: df
Out[45]:
Last Days to expiry
Date Ticker
1988-06-23 COU88 15.65 48 days
COV88 15.65 78 days
1988-06-24 COU88 15.65 47 days
COV88 15.56 77 days
COX88 15.75 108 days
1988-06-27 COU88 15.10 44 days
COV88 15.30 74 days
1988-06-28 COU88 15.27 43 days
COV88 15.27 73 days
1988-06-29 COU88 14.97 42 days
COV88 14.92 72 days
1988-06-30 COU88 14.85 41 days
COV88 14.80 71 days
索引有两个级别(即'Date'和'Ticker')。 我想用整数对它进行切片,将所有日期放在第一行,这意味着第一个代码。结果应如下所示:
Last Days to expiry
Date Ticker
1988-06-23 COU88 15.65 48 days
1988-06-24 COU88 15.65 47 days
1988-06-27 COU88 15.10 44 days
1988-06-28 COU88 15.27 43 days
1988-06-29 COU88 14.97 42 days
1988-06-30 COU88 14.85 41 days
此外,如果可能的话,我想过滤列以仅获取名为 'Last' 的列。我无法获得 df.iloc
的正确语法非常感谢您的提示
您可以 groupby
在第一个索引级别上调用 first
:
In [173]:
df.groupby(level='Date').first()
Out[173]:
Last Days to expiry
Date
1988-06-23 15.65 48 days
1988-06-24 15.65 47 days
1988-06-27 15.10 44 days
1988-06-28 15.27 43 days
1988-06-29 14.97 42 days
1988-06-30 14.85 41 days