gpt4 book ai didi

python - 从 pandas Dataframe 字符串的科学记数法中获取幂数

转载 作者:太空宇宙 更新时间:2023-11-04 02:32:29 26 4
gpt4 key购买 nike

通过使用 pandas 读取制表符分隔的文件,我得到了一个包含字符串的数据框,可以使用 to_numeric() 将其转换为数字,但大多数数字是小到连 float64 精度都不够(例如 1,234e-4500)

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

我怎样才能最轻松地转换字符串并将两个值一起保存为数字?

预先感谢您的帮助!

最佳答案

如果将两个值作为元组存储在 DataFrame 中足够方便,您可以使用 pandas.read_csv 的转换器函数来实现.

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

旁注:正如 vladimir 所指出的,如果问题允许解决方案,则数据规范化应该是首选方法。

关于python - 从 pandas Dataframe 字符串的科学记数法中获取幂数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48856215/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com