首页 > 解决方案 > 如何使用熊猫从字符串中删除小数点

问题描述

我正在读取一个 xls 文件并使用 pyspark 在数据块中转换为 csv 文件。我的输入数据是 xls 文件中的字符串格式 101101114501700。但是在使用 pandas 将其转换为 CSV 格式并写入 datalake 文件夹后,我的数据显示为 101101114501700.0。我的代码如下。请帮助我为什么我在数据中得到小数部分。

for file in os.listdir("/path/to/file"):
     if file.endswith(".xls"):
       filepath = os.path.join("/path/to/file",file)         
       filepath_pd = pd.ExcelFile(filepath)
       names = filepath_pd.sheet_names        
       df = pd.concat([filepath_pd.parse(name) for name in names])        
       df1 = df.to_csv("/path/to/file"+file.split('.')[0]+".csv", sep=',', encoding='utf-8', index=False)
       print(time.strftime("%Y%m%d-%H%M%S") + ": XLS files converted to CSV and moved to folder"

标签: pythonexcelpython-3.xpandasdataframe

解决方案


我认为读取 excel 时该字段会自动解析为浮点数。之后我会更正它:

df['column_name'] = df['column_name'].astype(int)

如果您的列包含 Null,则您无法转换为整数,因此您需要先填充 null:

df['column_name'] = df['column_name'].fillna(0).astype(int)

然后你可以连接并存储你正在做的方式


推荐阅读