python str函数数字转换成字符串,Pandas将数字转换为字符串意外结果

似乎没有办法获得输入表(从html/xls/etc文件)到DataFrame对象,因为它是1对1,没有pandas内部应用的任何字段转换。在

假设下面的html表是以.xls文件的扩展名保存的,那么我们如何在Python内存中使用DataFrame对象获得相同的表示形式呢?在

“测试”的内容_文件.xls“:

Number

1.320,00600,00

(1)直接读取文件

处理代码:

^{pr2}$

输出:Number

0 1.32

1 60000.00

Number float64

dtype: object

如我们所见,这些数字通过一些预定义的逻辑被转换成float64。我认为这个逻辑包括区域设置,可能是pandas内部的一些规则,等等。直接指定字符串转换器不允许获得初始值。在

(2)应用str函数作为每个维度的转换器

处理代码:converters = {column_name: str for column_name in df[0].dtypes.index}

df = pandas.read_html(f, converters = converters)

print(df[0])

print(df[0].dtypes)

输出:Number

0 1.32000

1 60000

Number object

dtype: obje

显然,这个问题的预期输出是:Number

0 1.320,00

1 600,00

可能存在这样的情况,一个文件包含以不同格式(美式/欧式等)键入的数字。此数字与十进制标记、千位标记等不同。因此,处理此类文件的逻辑方法是提取字符串中的数据“原样”,并对每一行分别使用regexp/其他模块执行解析。有没有办法在熊猫身上做到这一点?还有没有其他方法可以处理这种文件的处理?谢谢各位!在

备注:

“十进制”和“千”参数规范熊猫。阅读_*看起来不是一个可靠的解决方案,因为它适用于所有领域。简单示例:它可以将“02.2017”格式的日期字段视为数字,并将其转换为“022017”。在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值