熊猫阅读科学符号和变化


问题内容

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

我的一个列有值,其中包括NaNfloats,和科学记数法,即5.3e-23

我的麻烦是,当我在csv中阅读时,pandas将这些数据视为object dtype,而不是float32应有的。我猜是因为它认为科学计数法条目是字符串。

我已经尝试df['speed'].astype(float)在读入dtype后使用dtype进行转换,并尝试在使用dtype进行读取时指定它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 ...

到目前为止,这两种方法均无效。我是否错过了一个非常容易解决的问题?

这个问题似乎表明我可以指定可能引发错误的已知数字,但是如果可能的话,我希望将科学计数法转换回浮点数。

编辑以根据评论中的要求显示CSV数据

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

问题答案:

我意识到这是infinity导致我的数据出现问题的陈述。通过查找将其删除,然后进行替换。

@Anton Protopopov的回答也和@DSM关于我没有打字的评论一样有用df['speed'] = df['speed'].astype(float)

谢谢您的帮助。