3 回答
TA贡献2051条经验 获得超10个赞
事实上,就是按照你要求的去做。问题在于,您读取浮点数,并且由于语言读取浮点数的方式,它们会产生一些微小的变化。
在这种情况下,使用此代码,它将满足您的需要。
combined_csv.to_csv( "combined_csv.csv", index=False, float_format='%.3f')
TA贡献1875条经验 获得超5个赞
使用之前答案的替代方案float_format:
import pandas as pd
from decimal import Decimal
from io import StringIO
import sys
data = '''\
a,b,c,d,e,f
49.108,55.738,30.106,41.681,54.896,32.99
94.107,55.739,3.105,41.671,45.897,23.98
'''
f = StringIO(data)
df = pd.read_csv(f)
df.to_csv(sys.stdout, index=False)
df = df.round(decimals=4)
df.to_csv(sys.stdout, index=False)
f.seek(0)
converters = {k: Decimal for k in 'abcdef'}
df = pd.read_csv(f, converters=converters)
df.to_csv(sys.stdout, index=False)
TA贡献1872条经验 获得超3个赞
您可以将 glob(一个用于处理文件的 Python 库)与 pandas 结合使用,以更好地组织这些数据。glob 可以通过使用正则表达式匹配来获取文件名来打开多个文件:
import glob
files = glob.glob("file*.csv")
df_list = []
for filename in files:
data = pd.read_csv(filename)
df_list.append(data)
df = pd.concat(df_list)
print(files)
添加回答
举报