A
B
C
最小示例:
import pandas as pd
data = {
'Company': ['Apple', None, None, 'Tesla', None, None, 'Microsoft', None, None],
'Year': [21, 22, 23, 21, 22, 23, 21, 22, 23],
'Total Revenue': [10, 20, 30, 40, 50, 60, 70, 80, 90],
}
df = pd.DataFrame(data)
df:
Company Year Total Revenue
0 Apple 21 10
1 None 22 20
2 None 23 30
3 Tesla 21 40
4 None 22 50
5 None 23 60
6 Microsoft 21 70
7 None 22 80
8 None 23 90
我想用 -
进行计算df['Revenue Growth (%)'] = df.groupby(['Company'])['Total Revenue'].pct_change()*100
多次获取 NaN 值。
有人可以帮我解决这个问题吗?
代码
df['Revenue Growth (%)'] = (
df.groupby(df['Company'].ffill())['Total Revenue']
.pct_change()
)
df
Company Year Total Revenue Revenue Growth (%)
0 Apple 21 10 NaN
1 None 22 20 1.00
2 None 23 30 0.50
3 Tesla 21 40 NaN
4 None 22 50 0.25
5 None 23 60 0.20
6 Microsoft 21 70 NaN
7 None 22 80 0.14
8 None 23 90 0.12