📜  pandas 两行之间的百分比变化 - Python (1)

📅  最后修改于: 2023-12-03 15:03:28.824000             🧑  作者: Mango

Pandas 两行之间的百分比变化 - Python

在进行数据分析时,我们常常需要对数据做出相对变化的比较。例如,我们可能需要分析上个月和这个月的销售数据之间的变化百分比。在Pandas中,我们可以使用pct_change方法来找到两行之间的百分比变化。

pct_change 方法

pct_change 是一个Pandas DataFrame对象的函数,用于计算每个元素与之前元素之间的变化百分比。例如,下面的代码将DataFrame对象的每一列与其前一个元素之间的变化百分比计算出来:

import pandas as pd 

df = pd.DataFrame({'Sales':[100,200,150,300,250]})

df['Percentage Change'] = df['Sales'].pct_change()

print(df)

输出结果将是:

   Sales  Percentage Change
0    100                NaN
1    200           1.000000
2    150          -0.250000
3    300           1.000000
4    250          -0.166667

第一个元素的变化百分比被设置为NaN,因为没有前一个元素可以与其进行比较。我们可以使用fillna方法来将NaN值替换为适当的值:

df['Percentage Change'] = df['Percentage Change'].fillna(0)

print(df)

这将输出一个新的DataFrame对象,其中NaN值已经被替换为0:

   Sales  Percentage Change
0    100           0.000000
1    200           1.000000
2    150          -0.250000
3    300           1.000000
4    250          -0.166667

现在我们可以看到每个元素与前一个元素之间的变化百分比。第一个元素的变化百分比为0,因为没有前一个元素。

计算多个列的百分比变化

如果我们需要计算DataFrame对象中多个列之间的百分比变化,我们可以使用df.pct_change()方法。例如,下面的代码将DataFrame对象中每个列的每个元素与其前一个元素之间的变化百分比计算出来:

df = pd.DataFrame({
    'Sales':[100,200,150,300,250],
    'Profit':[10,20,15,30,25]
    })

percentage_change = df.pct_change()

print(percentage_change)

输出结果将是:

   Sales  Profit
0    NaN     NaN
1    1.0     1.0
2   -0.25    -0.25
3    1.0     1.0
4   -0.166667 -0.166667

第一个元素的变化百分比被设置为NaN,因为没有前一个元素可以与其进行比较。我们可以使用fillna方法来将NaN值替换为适当的值,如上面的例子所示。

结论

使用pct_change方法可以轻松计算Pandas DataFrame对象中每个元素与前一个元素之间的相对变化百分比。这个技巧可以帮助你在数据分析中更好地了解数据的趋势。