Python 在熊猫数据集中识别客户流失或流失(非分类)
我有以下形式的数据集:Python 在熊猫数据集中识别客户流失或流失(非分类),python,pandas,Python,Pandas,我有以下形式的数据集: Company Period Revenue 0 Apple 2015Q1 10.0 1 Apple 2016Q1 10.0 2 Apple 2017Q1 10.0 3 Walmart 2015Q1 5.0 4 Walmart 2016Q1 5.0 5 Walmart 2017Q1 5.0 6 Walmart 2018Q1 5.0 7 GM 2016Q1 8.0 8 Facebook 201
Company Period Revenue
0 Apple 2015Q1 10.0
1 Apple 2016Q1 10.0
2 Apple 2017Q1 10.0
3 Walmart 2015Q1 5.0
4 Walmart 2016Q1 5.0
5 Walmart 2017Q1 5.0
6 Walmart 2018Q1 5.0
7 GM 2016Q1 8.0
8 Facebook 2014Q1 9.0
9 Facebook 2015Q1 9.0
您可以重新创建它w/:
import pandas as pd
Company = ['Apple','Apple','Apple','Walmart','Walmart','Walmart','Walmart','GM','Facebook','Facebook']
Period = ['2015Q1','2016Q1','2017Q1','2015Q1','2016Q1','2017Q1','2018Q1','2016Q1','2014Q1','2015Q1']
Revenue = [10.0, 10.0, 10.0, 5.0, 5.0, 5.0, 5.0, 8.0, 9.0, 9.0]
d = {'Company':Company, 'Period':Period, 'Revenue':Revenue}
df = pd.DataFrame(data = d)
您可以看到,每个公司都有经常性收入,但任何给定的公司都可以取消该订阅这些取消是我想找到一种方法来跨多行数据集捕获的内容。
例如,苹果一直坚持到2018年第一季度,届时将有预期的年度费用。沃尔玛是最新的(下一个预计将是2019年第一季度)。通用汽车在2017年第一季度和Facebook在2016年第一季度都有所下降
在不计算未来预期费用的情况下(例如沃尔玛案例,没有下降),识别整个数据集中每家公司首次发生这些“缺失”费用的时间段的最佳方法是什么?请查看下面的代码。如果我正确理解你的问题,这可能会解决它。如果没有,请澄清问题,我很乐意纠正解决方案:
dfDropOutDates = pd.DataFrame(df.groupby("Company")["Period"].max())
dfDropOutDates.reset_index(inplace=True)
current_quarter = "2018Q1"
dfDropOutDates[dfDropOutDates["Period"] != current_quarter]
这太棒了。我只做了
dfDropOutDates[dfDropOutDates[“Period”]