过滤掉pandas数据透视表行

时间:2014-03-07 22:13:30

标签: python pandas

我有一个像这样的数据透视表:

datadict={('Imps', '10day avg'): {'Kept': 8893221.8000000007,
  'RTB': 2038806.0909090908,
  'Resold': 2924189.3500000001},
 ('Imps', '30day avg'): {'Kept': 4597369.7000000002,
  'RTB': 1167544.7272727273,
  'Resold': 1399503.1000000001},
 ('Imps', '3day avg'): {'Kept': 8581754.9000000004,
  'RTB': 1826690.0909090908,
  'Resold': 3631253.5499999998},
 ('Revenue', '10day avg'): {'Kept': 1116.52816874,
  'RTB': 664.17077545454549,
  'Resold': 390.27436701499994},
 ('Revenue', '30day avg'): {'Kept': 576.10828001333334,
  'RTB': 352.93580718181818,
  'Resold': 199.26966106333327},
 ('Revenue', '3day avg'): {'Kept': 791.95915710000008,
  'RTB': 490.23978787878792,
  'Resold': 384.58885283333336}}

df = pandas.DataFrame.from_dict(datadict)
df.columns = pandas.MultiIndex.from_tuples(df.columns)

我想将其过滤为仅显示每个“Imp Type”(即RTB,Kept,Resold)的所有期间的最大收入高于某个阈值的行。

1 个答案:

答案 0 :(得分:1)

'Imps Type'不是'Imp Type'对吗?如果截止是3000000:

In [9]:

print df[(df['Imps']>3000000).any(axis=1)]
              Imps                             Revenue                        
         10day avg  30day avg    3day avg    10day avg   30day avg    3day avg
Kept    8893221.80  4597369.7  8581754.90  1116.528169  576.108280  791.959157
Resold  2924189.35  1399503.1  3631253.55   390.274367  199.269661  384.588853

[2 rows x 6 columns]