删除 NaN 后无法将 float NaN 转换为整数

Cannot convert float NaN to integer after dropping NaN

我一直在尝试使用脚本从下面的 table (AlcData) 中读取数据并计算每年的平均使用频率:

Frequency
Never
1-2 times per year
3-4 times per month
Every day
1-2 times per week

对此table:

Frequency
0
1.5
42
365
0
78
0

如您所见,第一个 table 中有一些缺失值被读取为“NaN”,我想将其转换为值 0。我已经尝试了数十种在线解决方案来尝试和替换(或不太理想地删除)NaN 值,但我不断收到错误:“无法将 float NaN 转换为整数”。有谁知道我的错误可能在下面的代码中?

import pandas as pd 

AlcData['Frequency'].replace(str('Every day'), str('365 days per year'))
AlcData['Frequency'].replace(str('Never'), str('0 days per year'))
AlcData["Frequency"].fillna(0)

AlcData['Frequency'].str.split().str[-1].map({'week': 52, 'month': 12, 'year': 1}).mul(AlcData['Frequency'].str.extract(r'(\d+)\D*(\d+)?').ffill(axis=1).astype(int).mean(axis=1))

如有任何提示,我们将不胜感激!

df['Frequency'].replace(str('Every day'), str('365 days per year'),inplace=True)
df['Frequency'].replace(str('Never'), str('0 days per year'), inplace=True)

df['Frequency'] = df['Frequency'].str.split().str[-1].map({'week': 52, 'month': 12, 'year': 1}).mul(df['Frequency']
                                                                                  .str.extract(r'(\d+)\D*(\d+)?').ffill(axis=1).astype(float).mean(axis=1))
df["Frequency"].replace(np.nan, 0, inplace=True)