Python / Pandas 缩写我的数字。
Posted
技术标签:
【中文标题】Python / Pandas 缩写我的数字。【英文标题】:Python / Pandas abbreviating my numbers. 【发布时间】:2017-12-10 14:29:25 【问题描述】:可能是一个非常容易解决的问题,但我的英语不够好,无法搜索正确的答案。
Python/Pandas 正在将我写的数字从:6570631401430749 更改为:6.17063140131e+15
我正在合并数百个 csv 文件,而这一列完全错误。该列的名称是“序列号”,它是第 3 列。
import pandas as pd
import glob
import os
interesting_files = glob.glob("*.csv")
df_list = []
for filename in sorted(interesting_files):
frame = pd.read_csv(filename)
print(os.path.basename(filename))
frame['filename'] = os.path.basename(filename)
df_list.append(frame)
full_df = pd.concat(df_list)
full_df.to_csv('output.csv',encoding='utf-8-sig')
【问题讨论】:
您如何查看生成的 CSV?你确定科学记数法真的被写入文件,而不是你用来查看文件的任何东西执行的自动转换吗? (例如,如果您在 Excel 中打开 CSV,它通常会显示与文件中存储的内容不同的内容。) 是的。我是用记事本++打开的,所以转换真的发生了。 好主意。我的同事一直在走。有时,Excel 确实会在数字和格式方面做一些数字。 【参考方案1】:如果您想保留原始格式的数据,可以在读取 csv 时使用dtype = object
。您可以将代码更改为
import pandas as pd
import glob
import os
interesting_files = glob.glob("*.csv")
df_list = []
for filename in sorted(interesting_files):
frame = pd.read_csv(filename,dtype=object)
print(os.path.basename(filename))
frame['filename'] = os.path.basename(filename)
df_list.append(frame)
full_df = pd.concat(df_list)
full_df.to_csv('output.csv',encoding='utf-8-sig')
【讨论】:
谢谢。像魅力一样工作。老板想要手动读入 CSV 文件,这至少要花我几个小时。很高兴这成功了。 很高兴它有帮助。以上是关于Python / Pandas 缩写我的数字。的主要内容,如果未能解决你的问题,请参考以下文章