首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >熊猫能读懂科学符号和变化

熊猫能读懂科学符号和变化
EN

Stack Overflow用户
提问于 2015-12-01 06:15:28
回答 3查看 14.2K关注 0票数 7

我有一个熊猫的数据帧,我正在从csv中读取。

我的一篇专栏文章的值包括NaNfloats和科学记数法,即5.3e-23

我的问题是,正如我在csv中读到的那样,熊猫将这些数据视为object dtype,而不是它应该是的float32。我猜是因为它认为科学记数法条目是字符串。

在读入之后,我尝试使用df['speed'].astype(float)转换数据类型,并尝试在使用df = pd.read_csv('path/test.csv', dtype={'speed': np.float64}, na_values=['n/a'])读入数据类型时指定数据类型。这将抛出错误ValueError: cannot safely convert passed user dtype of <f4 for object dtyped data in column ...

到目前为止,这两种方法都不起作用。我是不是遗漏了一些非常容易修复的东西?

this question似乎建议我可以指定可能抛出错误的已知数字,但如果可能的话,我更喜欢将科学记数法转换回浮点数。

编辑以根据注释中的请求显示CSV中的数据

代码语言:javascript
运行
AI代码解释
复制
7425616,12375,28,2015-08-09 11:07:56,0,-8.18644,118.21463,2,0,2
7425615,12375,28,2015-08-09 11:04:15,0,-8.18644,118.21463,2,NaN,2
7425617,12375,28,2015-08-09 11:09:38,0,-8.18644,118.2145,2,0.14,2
7425592,12375,28,2015-08-09 10:36:34,0,-8.18663,118.2157,2,0.05,2
65999,1021,29,2015-01-30 21:43:26,0,-8.36728,118.29235,1,0.206836151554794,2
204958,1160,30,2015-02-03 17:53:37,2,-8.36247,118.28664,1,9.49242000872744e-05,7
384739,,32,2015-01-14 16:07:02,1,-8.36778,118.29206,2,Infinity,4
275929,1160,30,2015-02-17 03:13:51,1,-8.36248,118.28656,1,113.318511172611,5
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-12-01 17:35:58

我意识到是infinity语句导致了我的数据中的问题。使用查找和替换来删除它是有效的。

@Anton Protopopov的回答和@DSM关于我没有输入df['speed'] = df['speed'].astype(float)的评论一样有效。

谢谢你的帮助。

票数 1
EN

Stack Overflow用户

发布于 2015-12-01 06:40:35

在看不到数据的情况下很难说,但似乎行中的问题是它们包含除了数字和'n/a‘值之外的其他内容。您可以加载数据帧,然后将其转换为数字,如that问题答案中所示。如果你有pandas版本的>= 0.17.0,那么你可以使用以下命令:

代码语言:javascript
运行
AI代码解释
复制
df1 = df.apply(pd.to_numeric, args=('coerce',))

然后,您可以使用dropna删除带有NA值的行,或者使用fillna使用零填充它们

票数 2
EN

Stack Overflow用户

发布于 2020-10-15 17:05:09

在我的例子中,使用pandas.round()是可行的。

代码语言:javascript
运行
AI代码解释
复制
df['column'] = df['column'].round(2)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34013790

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档