Python 使用Pandas或SQL根据订阅持续时间计算收入?

Python 使用Pandas或SQL根据订阅持续时间计算收入?,python,sql,pandas,Python,Sql,Pandas,我正在尝试使用csv计算一些基于收入的月度业务指标,csv包含以下字段:客户ID、订阅开始、订阅持续时间和订阅值 由于我需要对过去几个月进行比较(例如,如果某个特定客户的收入下降),我最初的想法是为每个月创建新列,并基于这些列,使用panda查找值并将其存储在这些指标的新表中 你们认为这是最好的方法,还是最好尝试使用SQL来获取这些指标 很抱歉,如果问题不清楚,我找不到更好的解释。我不确定我是否完全理解您的问题,但看起来您需要一种方法来区分客户价值的当前日期和过去日期 查看此代码是否可以帮助您:

我正在尝试使用csv计算一些基于收入的月度业务指标,csv包含以下字段:客户ID、订阅开始、订阅持续时间和订阅值

由于我需要对过去几个月进行比较(例如,如果某个特定客户的收入下降),我最初的想法是为每个月创建新列,并基于这些列,使用panda查找值并将其存储在这些指标的新表中

你们认为这是最好的方法,还是最好尝试使用SQL来获取这些指标


很抱歉,如果问题不清楚,我找不到更好的解释。

我不确定我是否完全理解您的问题,但看起来您需要一种方法来区分客户价值的当前日期和过去日期

查看此代码是否可以帮助您:

#示例数据帧
df=pd.DataFrame({'date':[1,2,3,1,2,3],
‘客户’:[‘c1’、‘c1’、‘c1’、‘c2’、‘c2’、‘c2’],
'值':[123234123456345678]})
#设置索引以更快地访问项目
df.set_索引(['client','date'],inplace=True)
#我把每一项都删掉
delta=[]
对于df.index.levels[0]中的客户端:
对于df.index.levels[1]中的日期:
#如果索引中不存在该项,则不会发生任何事情
尝试:
current=df.loc[client].loc[date]['value']
#如果没有过去的日期,则增量为零,但uou可以更改它
尝试:
before=df.loc[client].loc[date-1][value]
delta.append(当前-之前)
除:
delta.append(0)
除:
通过
df['delta']=delta
df

我不确定我是否完全理解您的问题,但看起来您需要一种方法来区分客户价值的当前日期和过去日期

查看此代码是否可以帮助您:

#示例数据帧
df=pd.DataFrame({'date':[1,2,3,1,2,3],
‘客户’:[‘c1’、‘c1’、‘c1’、‘c2’、‘c2’、‘c2’],
'值':[123234123456345678]})
#设置索引以更快地访问项目
df.set_索引(['client','date'],inplace=True)
#我把每一项都删掉
delta=[]
对于df.index.levels[0]中的客户端:
对于df.index.levels[1]中的日期:
#如果索引中不存在该项,则不会发生任何事情
尝试:
current=df.loc[client].loc[date]['value']
#如果没有过去的日期,则增量为零,但uou可以更改它
尝试:
before=df.loc[client].loc[date-1][value]
delta.append(当前-之前)
除:
delta.append(0)
除:
通过
df['delta']=delta
df