AWS Glue 作业的 CSV 文件无限值问题

CSV file Infinity value issue with AWS Glue job

我有一个 csv 文件,我正在阅读 Pandas 并尝试将 NaN 和 Infinity 转换为 0.0。我有我在本地 运行 并正确获得转换的代码,例如:

df = pd.read_csv('test.csv')
print(df['C1'])
df.replace([np.inf, -np.inf], np.nan, inplace=True)
df = df.fillna(0.00)
print(df['C1'])
0    NaN
1    inf
2    NaN
Name: C1, dtype: float64
0    0.0
1    0.0
2    0.0
Name: C1, dtype: float64

此处,无穷大和 NaN 值已正确转换为 0.0,如输出中所示。但是当我在 AWS Glue Python Shell 作业中执行相同操作时,它不会将无穷大值转换为 0.0。 Glue 作业的代码和输出如下:

df = pd.read_csv('s3://bucket/test.csv')
print(df['C1'])
df = df.replace([np.Infinity, -np.Infinity], np.nan)
df = df.fillna(0.00)
print(df['C1'])
0         NaN
1    Infinity
2         NaN
Name: C1, dtype: object
0           0
1    Infinity
2           0
Name: C1, dtype: object

同一文件在本地和 S3 上使用,但问题在于无限值。此外,在本地,数据类型被读取为 float64,但在 Glue 中是对象类型。对此有任何帮助吗?

我能够根据评论中的 BdR 回复解决它,所以这里是答案:

df = pd.read_csv(input_path, na_values=["Infinity", "-Infinity"])
df = df.replace([np.Infinity, -np.Infinity], np.nan)
df = df.fillna(0.00)