Python 组内行之间的差异
数据帧:Python 组内行之间的差异,python,python-3.x,pandas,dataframe,pandas-groupby,Python,Python 3.x,Pandas,Dataframe,Pandas Groupby,数据帧: col1 col2 a 50 b 40 a 40 a 30 b 20 a 20 b 30 b 50 我需要根据col1对它们进行分组,并根据col2对每个组进行从高到低的排序 并找出组中连续行之间的差异。 日期框: col1 col_entity col2 diff a a1 50 10 b a2 40
col1 col2
a 50
b 40
a 40
a 30
b 20
a 20
b 30
b 50
我需要根据col1对它们进行分组,并根据col2对每个组进行从高到低的排序
并找出组中连续行之间的差异。
日期框:
col1 col_entity col2 diff
a a1 50 10
b a2 40 10
a a3 30 10
a a4 20 nan
b b1 40 10
a b4 50 10
b b3 30 10
b b2 20 nan
请帮我做这个
提前感谢看看这是否有帮助:
#replaces any value that contains a string value, with a 0
df['col2'] = pd.to_numeric(df.col2, errors='coerce').fillna(0)
#sorts the column in ascending first and calculates the difference
df['diff']=df.sort_values(['col1','col2'],ascending=[1,1]).groupby('col1').diff()
#display the dataframe after sorting col1 in asc and col2 in desc
df.sort_values(['col1','col2'],ascending=[1,0])
输出:
您可以使用assign和groupby col1,然后使用diff计算差异
(
df
.assign(diff = lambda x: x.groupby('col1').diff())
.sort_values(['col1','col2'],ascending=False)
)
您的预期结果是什么?在将答案发布到原始问题后,请不要更改您的问题。如果你想回答另一个问题,你可以在另一篇帖子中回答。@MichaelSzczesny我为同样的问题道歉我是新来这里发帖的,下次发帖后会再发帖谢谢你先生,你的答案很好,但我已更改编辑了问题,我收到错误类型错误:不支持的操作数类型-:“str”和“str”