筛选掉pandas透视表的行

0 投票
1 回答
1766 浏览
提问于 2025-04-17 21:22

我有一个这样的透视表:

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)

我想要过滤这个表,只显示那些每种“影响类型”(比如RTB、保留、转售)在所有时间段内的最大收入超过某个特定值的行。

1 个回答

1

“Imps 类型”不是“Imp 类型”,对吧?如果截止值是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]

撰写回答