【发布时间】:2020-08-19 19:13:32
【问题描述】:
使用以下虚拟数据框:
import pandas as pd
df = pd.DataFrame({'dt':['2020-01-01', '2020-01-02', '2020-01-03', '2020-01-03', '2020-01-01', '2020-01-02', '2020-01-03', '2020-01-03'], 'group':['a', 'a', 'b', 'b', 'a', 'a', 'b', 'b'], 'bar':[1,2,3, 4, 1,2,3, 4], 'baz':[3,4,5, 6, 3,4,5, 6]})
df = df.groupby(['dt', 'group']).describe()
即我希望能够选择df[['dt', 'group', ('bar', '25%'), , ('bar', '25%'), , ('bar', '25%')]]。
如何执行这种多级选择?
我的最终目标是能够绘制每个类别随时间变化的百分位数,其中每个类别描述一种颜色:
import seaborn as sns; sns.set()
sns.lineplot(data=df.reset_index()['baz'][['25%', '50%', '75%']], hue='group')
但是,在剩余的数据框中,没有留下任何关于组的信息。
【问题讨论】:
-
类似
df["bar"].filter(like="%")? -
@HenryYik 的建议非常简洁......我认为你应该将其发布为答案
标签: python pandas seaborn multi-index percentile