【发布时间】:2019-05-05 02:02:31
【问题描述】:
在 jupyter 上工作,我的数据框有每个客户每年的交易数量和字段,表明“趋势 - 交易量比去年多,交易量比去年少,第一年为空。
我想创建一个分子,每个客户每“上升”一次,就会增加 1,每“下降”一次,就会“减少”1。
我知道我需要首先对 df 进行排序,然后构建一个根据客户数量运行的循环和一个每年都会运行的内部循环,但我需要帮助。
DF 样本:
df = pd.DataFrame({
'group number': [1,1,1,1,3,3,3],
'year': ['2012','2013','2014','2015','2011','2012','2013'],
'trend': [NaN,'down','up','up',NaN,'down','up']
})
这是我到目前为止所做的:
df =pd.read_excel('totals_new.xlsx',sheet_name='Sheet1').sort_values(['group number', 'year'])
noofgroups = len(df['group number'].unique())
yearspergroup = df.groupby('group number')['year'].nunique()
vtrend =0
for i in noofgroups:
for j in yearspergroup:
if df["trend"] == "up":
vtrend = vtrend+1
if df["trend"] == "down":
vtrend = vtrend-1
【问题讨论】:
-
欢迎来到 StackOverflow!如果您可以提供您已经尝试过的代码 sn-p,则更适合该社区,因此我们可以提出改进建议。
标签: python pandas loops for-loop