用于删除带有pandas、os、glob的列并更改整个表的值的Python代码

用于删除带有pandas、os、glob的列并更改整个表的值的Python代码,python,pandas,csv,operating-system,glob,Python,Pandas,Csv,Operating System,Glob,我有一个从csv文件中删除列的代码。它可以工作,但当它保存时,它会在我的其他列中的一些值中添加小数点(似乎是随机的)。例如,当我运行代码时,另一列中的值从原来的1.815更改为1.815999999998,或从1.783更改为1.78300000000000001。我有没有办法防止这种情况发生?我不明白,如果我只是删除列[0],为什么它会更改其他列中的一些值。谢谢 import pandas as pd import os import glob def main(): path =

我有一个从csv文件中删除列的代码。它可以工作,但当它保存时,它会在我的其他列中的一些值中添加小数点(似乎是随机的)。例如,当我运行代码时,另一列中的值从原来的1.815更改为1.815999999998,或从1.783更改为1.78300000000000001。我有没有办法防止这种情况发生?我不明白,如果我只是删除列[0],为什么它会更改其他列中的一些值。谢谢

import pandas as pd
import os
import glob

def main():
    path = os.getcwd()
    csv_files = glob.glob(os.path.join(path, "*.csv"))
    for f in csv_files:
        df = pd.read_csv(f)
        first_column = df.columns[0]
        df = df.drop([first_column], axis=1)
        df.to_csv(f, index=False)
main()

计算机就是这样工作的!它们不能精确地表示浮点数

当使用float_格式写回文件时,可以再次将它们舍入

df.to_csv(f, index=False, float_format="%.f3")

或者使用
“%.g3”
删除尾随的零。

这是否回答了您的问题?