基于Criteri的Pandas透视表过滤

2024-10-01 17:28:29 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我有一个pivot_表,基本上是一个多级df,我想用几个参数过滤它。在

列数据类型:

Report          object
Owner           object
Description     object
TimeToRun       object
FacilityName    object
Base Report     object

pd功能:

^{pr2}$

在pv.柱在

MultiIndex(levels=[[u'Base Report'], [u'Roseville', u'Sacramento', u'South Sacramento']],
       labels=[[0, 0, 0], [0, 1, 2]],
       names=[None, u'FacName'])

我想用第二级值过滤得到的df,我想过滤它,这样任何大于2的计数的值都会被索引。{1>在这种情况下,第二个列的长度是不同的。在

以下是我的疑问:

query = pv[(pv[pv.columns[0]]>2) | (pv[pv.columns[1]]>2)| (pv[pv.columns[2]]>2)]

以下是在excel中呈现的pivot_表的外观:

    Base Report 
FacilityName        Santa Clara Santa Teresa
TimeToRun       
2018-03-28 07:00:00    4    0
2018-03-28 07:01:00    4    0
2018-03-28 07:02:00    6    0
2018-03-28 07:03:00    5    0
2018-03-28 09:05:00    0    3
2018-03-28 09:15:00    0    6
2018-03-28 14:45:00    3    0
2018-03-28 17:15:00    0    5
2018-03-28 19:10:00    0    3
2018-03-28 19:15:00    0    4

我相信还有更好的方法,请告诉我怎么做。谢谢你


Tags: columnsreportdfbase参数objectdescriptionsanta
2条回答

弄明白了:

pv[pv[('Base Report')]>2].dropna(axis=0,how='all')

你也可以在适当的地方使用它,或者只是返回它…谢谢!在

结果如下,请注意空白为0值:

^{pr2}$

对列进行迭代并删除不符合计数条件的列如何?在

for col in pv.columns:
    if not any(pv[col] > 2):
        pv.drop(col,axis=1,inplace=True)

相关问题 更多 >

    热门问题