你可以使用pandas库来按年汇总数据,并且在该年的列值中发现NA时进行覆盖。以下是一个示例代码:
import pandas as pd
# 创建示例数据
data = {
'Year': [2019, 2019, 2020, 2020, 2021],
'Value': [10, pd.NA, 15, pd.NA, 20]
}
df = pd.DataFrame(data)
# 将年份列设置为索引
df.set_index('Year', inplace=True)
# 按年汇总数据并覆盖NA值
df = df.groupby('Year').apply(lambda x: x.fillna(x.mean()))
# 打印结果
print(df)
这段代码首先创建了一个示例数据,其中包含了一个年份列和一个值列。然后,将年份列设置为索引,以便按年汇总数据。接下来,使用groupby
方法按年分组,并使用apply
方法对每个组进行操作。在这里,我们使用fillna
方法,将每个组中的NA值填充为该组的平均值。最后,打印结果。
运行上述代码,将得到以下输出:
Value
Year
2019 10.0
2019 10.0
2020 15.0
2020 15.0
2021 20.0
可以看到,2019年的NA值被填充为该年的平均值10.0,2020年的NA值被填充为该年的平均值15.0。
下一篇:按年汇总行的总和