如何使用Python数据帧基于多个条件进行计算?
我有一个包含数千行和数千列的excel数据文件。 我正在使用python,并且已经开始使用pandas dataframes来分析数据。 我想在D列中做的是计算C列中每个ID每年的值的年度变化。如何使用Python数据帧基于多个条件进行计算?,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个包含数千行和数千列的excel数据文件。 我正在使用python,并且已经开始使用pandas dataframes来分析数据。 我想在D列中做的是计算C列中每个ID每年的值的年度变化。 我可以使用excel来实现这一点——如果组织ID与前一行相同,则计算年度变化(将单元格突出显示为蓝色,因为这是该特定ID的第一个期间)。我不知道如何使用python实现这一点。有人能帮忙吗?假设数据帧已经排序 df.groupby(‘ID’).Cash.pct_change() 但是,您可以通过假设事
我可以使用excel来实现这一点——如果组织ID与前一行相同,则计算年度变化(将单元格突出显示为蓝色,因为这是该特定ID的第一个期间)。我不知道如何使用python实现这一点。有人能帮忙吗?假设数据帧已经排序
df.groupby(‘ID’).Cash.pct_change()
但是,您可以通过假设事情已排序来加快速度。因为计算从一行到下一行的百分比变化不需要分组
df.Cash.pct_change().mask(
df.ID != df.ID.shift()
)
这些将生成您要查找的列值。为了添加列,您需要分配给列或使用新列创建新的dataframe
df[‘AnnChange’] = df.groupby(‘ID’).Cash.pct_change()
谢谢这是否会忽略计算高亮显示行的百分比更改(ID的第一年)?还有-我还必须循环数据帧吗?很抱歉问了一些基本问题-这是我的第二个数据帧。为什么不试试看呢?谢谢!你提出的两个方案都奏效了。我真的很感激你的迅速反应。晚上好。