从数据帧字符串的科学符号数中获取幂数

2024-04-24 09:24:43 发布

您现在位置:Python中文网/ 问答频道 /正文

通过用pandas读取一个制表符分隔的文件,我得到了一个带有字符串的数据帧,这些字符串可以用to_numeric()转换成一个数字,但是大多数数字都很小,甚至float64精度都不够(例如1,234e-4500

将它们设置为0不是一个选项(计算、绘图和;区别对待)。因此尾数和指数应该分别找到到达数据帧的路径

如何最容易地转换字符串并将两个值作为数字保存在一起

提前感谢您的帮助


Tags: 文件to数据字符串绘图pandas选项精度
1条回答
网友
1楼 · 发布于 2024-04-24 09:24:43

如果将这两个值作为元组存储在DataFrame中足够方便,那么可以使用^{}的转换函数来实现

import pandas as pd

columns = ['a', 'b', 'c']  # list of columns to be converted
converters = {
    key: lambda x:
        (
            float(x.lower().split("e")[0].replace(",", ".")),
            int(x.lower().split("e")[1])
        ) for key in columns
}
df = pd.read_csv(
    "test.csv",   # your source file
    sep="\s+",    # tabs and whitespace as separator
    converters=converters,
)

将源文件test.csv与此

a    b    c
1,234e-4500 2,34e-3432  9,12e-123122

因此收益率

print df
print df['a'].dtype

            a              b                c
0  (1.234, -4500)  (2.34, -3432)  (9.12, -123122)
object

旁注:正如弗拉基米尔指出的那样,如果问题允许这种解决方案,数据的标准化应该是一种首选方法

相关问题 更多 >