Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Python数据帧基于多个条件进行计算?_Python_Pandas_Dataframe - Fatal编程技术网

如何使用Python数据帧基于多个条件进行计算?

如何使用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数据文件。 我正在使用python,并且已经开始使用pandas dataframes来分析数据。 我想在D列中做的是计算C列中每个ID每年的值的年度变化。
我可以使用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的第一年)?还有-我还必须循环数据帧吗?很抱歉问了一些基本问题-这是我的第二个数据帧。为什么不试试看呢?谢谢!你提出的两个方案都奏效了。我真的很感激你的迅速反应。晚上好。