筛选掉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)
我想要过滤这个表,只显示那些每种“影响类型”(比如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]