栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Pandas 处理 `csv` 数据类型问题

Pandas 处理 `csv` 数据类型问题

Pandas 处理 csv 数据类型问题

在大数据开发和测试的场景中我们需要将数据在不同的格式之间进行转换,笔者在转换的时候遇到了两个问题,通过摸索找到了解决方法,遂分享给大家。

数据准备

待处理的源 CSV 文件 test.csv

目标 plain_text 文件 test.txt

原始文件内容如下:

修改前的代码
import pandas as pd

df = pd.read_csv("test.csv")
df.to_csv("test.txt", sep="t", header=False, index=False)
输出结果

消失的 0

party_no 是字符串类型,预期是按照 0000000000001234567 写入到 test.txt 中去。但是,实际写入的时候发现 0 消失了。

丢失的精度

test_decimal1 字段是浮点数类型,预期保留 2 位小数;test_decimal2 预期是保留 9 位小数。但是实际写入的时候发现精度丢失,只保留了一位。

如何解决

实际上我们在调用 pandas.read_csv 通过参数 converters 来指定字段的类型,这样可以避免上述的两个问题。参考代码如下

import pandas as pd
from decimal import Decimal

data_converters = {
    "party_no": str,
    "timestamp": str,
    "date": str,
    "test_decimal1": Decimal,
    "test_decimal2": Decimal,
}

df = pd.read_csv("test.csv", converters=data_converters)
df.to_csv("test.txt", sep="t", header=False, index=False)

写入结果如下

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/746656.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号