我已经删除了公司对给定的period
不收取任何费用的行(例如,revenue
==0的行)。在
以下是计费数据的示例:
import numpy as np
import pandas as pd
data = {
'account_id': ['111','111','222','333','666','666','111','222','333','666','666'],
'company': ['initech','initech','jackson steinem & co','ingen','enron','enron','initech','jackson steinem & co','ingen','enron','enron'],
'billing_type': ['subscription','discount','subscription','subscription','subscription','discount','subscription','subscription','subscription','subscription','discount'],
'period': ['2012-10-31','2012-10-31','2012-10-31','2012-10-31','2012-10-31','2012-10-31','2012-11-30','2012-11-30','2012-11-30','2012-11-30','2012-11-30'],
'revenue':[39.95,-39.95,199.95,299.95,499.95,-499.95,39.95,199.95,299.95,499.95,-499.95]
}
df = pd.DataFrame(data)
df['period'] = pd.to_datetime(df['period'],format='%Y-%m-%d')
这将产生如下数据帧:
^{pr2}${{cd2{cd2}需要做的是什么。例如,我需要删除安然的所有行,但只删除Initech的2012年10月期间:
In [17]: df.groupby(['company','period'])['revenue'].sum()
Out[17]:
company period
enron 2012-10-31 0.00
2012-11-30 0.00
ingen 2012-10-31 299.95
2012-11-30 299.95
initech 2012-10-31 0.00
2012-11-30 39.95
jackson steinem & co 2012-10-31 199.95
2012-11-30 199.95
您可以使用^{} 制作一个帧大小的遮罩,然后使用它来选择:
这是因为
^{pr2}$transform
获取groupby结果并将其“广播”回主索引:相关问题 更多 >
编程相关推荐