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 缩写我的数字。的主要内容,如果未能解决你的问题,请参考以下文章

python:更改pyttsx缩写

如何从熊猫数据框中提取首字母缩写词和缩写词?

Python之Pandas学习

将一列日期数字转换为缩写月份

阿拉伯数字转化为中文(缩写)数值

用于格式化数字和本地化的缩写