今天接到一个需求,要求对数据错位相减。感觉写得有点麻烦,如果有其他方法,欢迎留言交流
数据说明:有客户、消费日期、消费额度
求解目标:对于同一个客户,对日期升序排序,如果下一个日期的消费额度大于上一个日期的消费额度,则标记,最终取出第一次发生时对应的较大的日期
最简单的方法是使用 pandas.Series.shift 具体可参考官方文档
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.shift.html
import pandas as pd
import numpy as np
df = pd.DataFrame({'persion':['A','A','A','A','B','B','B','B','B', 'C' ,'D','D','D']
, 'date':[0, 1, 6, 4, 1, 7, 4, 5, 6, 3, 1, 2, 3]
, 'price':[1, 5, 3, 0, 2, 4, 5, 8, 3, 5, 7, 7, 7 ]})
df['sort_id'] = df['date'].groupby(df['persion']).rank()
df.sort_values(by = ['persion', 'sort_id'], axis=0, inplace=True)
df['price_y'] = df["price"].shift(1)
问题很简单,解决的朋友请点赞
----------------分享完毕------------------------
Address:北京
Date:202001009
喜欢可以关注【小猪课堂】公众号了解更多内容
今天接到一个需求,要求对数据错位相减。感觉写得有点麻烦,如果有其他方法,欢迎留言交流数据说明:有客户、消费日期、消费额度求解目标:对于同一个客户,对日期升序排序,如果下一个日期的消费额度大于上一个日期的消费额度,则标记,最终取出第一次发生时对应的较大的日期最简单的方法是使用 pandas.Series.shift 具体可参考官方文档https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.shift.html
列表 a 中有若干元素,列表 b 有若干元素,现要求使用 Python 3 编程,找出属于列表 a 但又不属于列表 b 的所有元素,并放到一个新定义的列表 c 里面。相当于用编程实现如下列表减法公式:
c=a−b(∀i∈c,i∈a,i∉b)
c = a - b (\forall i \in c, i \in a, i \notin b )
c=a−b(∀i∈c,i∈a,i∈/b)
解决方案1
先将列表转为集合,然后做减法操作:
>>> list_a = [1, 2, 3, 4
表达式: df.loc[ [ 索引行的名称], [ 索引列的名称 ] ]
df.loc[ 索引的名称 ] 默认索引的名称是索引行的名称, 默认索引列的名称为df中所有的索引列
periods:类型为int,表示移动的幅度,可以是正数,也可以是负数,默认值是1,1就表示移动一次,注意这里移动的都是数据,而索引是不移动的,移动之后没有对应值的,就赋值为NaN。
freq: DateOffset, timedelta, or time rule stri...
>>> import pandas
>>> help(pandas.DataFrame.shift)
Help on function shift in module pandas.core.frame:
shift(self, periods=1, freq=None, axis=0)
Shift index by desired number of periods with an optional time
数据说明:有客户、消费日期、消费额度
求解目标:对于同一个客户,对日期升序排序,如果下一个日期的消费额度大于上一个日期的消费额度,则标记,最终取出第一次发生时对应的较大的日期
import pandas as pd
import numpy as np
df = pd.DataFrame({'per...
t1.date_column,
t2.date_column,
DATEDIFF(t2.date_column, t1.date_column) AS date_difference
your_table_name t1
JOIN your_table_name t2
ON t1.id = t2.id - 1;
其中,`your_table_name` 表示你的表的名称,`date_column` 表示日期列的名称,`id` 表示该行的唯一标识符,并且用于链接两行数据。通过使用 `ON t1.id = t2.id - 1` 这一连接条件,我们可以确保每一行的数据都与其下一行的数据连接在一起。最后,`DATEDIFF` 函数可以计算两个日期之间的天数差值。
【Python报错解决方法】:ParserError:Error tokenizing data.C error:Expected x fields in line nnn,saw y.
16983
【Python报错解决方案】亲测有效:Message: 'chromedriver.exe' executable needs to be in PATH. Please see https
m0_53778606:
【Python绘图】——Python绘图不清晰,设置矢量图
优秀的华华:
【Python报错解决方案】TypeError: ‘float‘ object is not callable
伞边猫�:
【统计学】三大相关系数之斯皮尔曼相关系数(spearman correlation coefficient)
sinat_37756716:
【统计学】三大相关系数之斯皮尔曼相关系数(spearman correlation coefficient)
xifulou_202: