我想用零填充csv文件中的空单元格。我发现我可以用fillna方法来做到这一点。如果我这样做:
fillna(“0”)
如果单元格是空的,这将增加0,但如果单元格有,例如1,它被更改为1.0,我不想。有什么办法来解决它?
rkkpypqq1#
当你使用fillna("0")时,它会将数值转换为strings,这就是为什么你会看到1.0而不仅仅是1。只要用integer而不是strings来填充它:
fillna("0")
strings
1.0
1
integer
import pandas as pd df = pd.read_csv("your_csv_file.csv") df.fillna(0, inplace=True) float_cols = df.select_dtypes(include=['float64']).columns convertible_cols = [col for col in float_cols if (df[col] % 1 == 0).all()] df[convertible_cols] = df[convertible_cols].astype(int) df.to_csv("updated_csv_file.csv", index=False)
1条答案
按热度按时间rkkpypqq1#
当你使用
fillna("0")
时,它会将数值转换为strings
,这就是为什么你会看到1.0
而不仅仅是1
。只要用integer
而不是strings
来填充它: