尝试在 Jyupter 中使用 - print(df) 进行打印时得到 NaN 值

问题描述 投票:0回答:1

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 值。

有人可以帮我解决这个问题吗?

python pandas jupyter-notebook
1个回答
0
投票

代码

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
© www.soinside.com 2019 - 2024. All rights reserved.