【发布时间】:2022-01-23 23:31:20
【问题描述】:
我正在尝试根据当年观察到的值的平均值来填充数据集中缺失的数据,并且需要很长时间才能逐个写入。我无法使用 for 循环创建此结构。应该怎么编码?
df['TOTAL_REVENUE'] = df.TOTAL_REVENUE.fillna(df.groupby('YEAR')['TOTAL_REVENUE'].transform('mean'))
df['FEDERAL_REVENUE'] = df.FEDERAL_REVENUE.fillna(df.groupby('YEAR')['FEDERAL_REVENUE'].transform('mean'))
df['STATE_REVENUE'] = df.STATE_REVENUE.fillna(df.groupby('YEAR')['STATE_REVENUE'].transform('mean'))
df['TOTAL_EXPENDITURE'] = df.TOTAL_EXPENDITURE.fillna(df.groupby('YEAR')['TOTAL_EXPENDITURE'].transform('mean'))
我知道这是错误的,但我想把它作为一个例子来展示。
for column in df.columns:
df[column] = df.column.fillna(df.groupby('YEAR')[column].transform('mean'))
#df['TOTAL_REVENUE'] = df.TOTAL_REVENUE.fillna(df.groupby('YEAR')['TOTAL_REVENUE'].transform('mean'))
【问题讨论】:
标签: pandas dataframe pandas-groupby