我在从csv中读取的熊猫中有一个数据框。
我的一个列有值,其中包括NaN
,floats
,和科学记数法,即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)
。
谢谢您的帮助。
我在pandas中有一个数据帧,我正在从csv中读取它。 我的一个列的值包括、和科学记数法,即 我的问题是,当我读取csv时,pandas将这些数据视为,而不是它应该是的。我猜是因为它认为科学符号是字符串。 我尝试使用后,尝试使用。这会引发错误
我在pandas中有一个数据框,其中一些数字用科学符号(或指数符号)表示,如下所示: 科学记数法使得本应简单的比较变得不必要的困难。我认为是21900值搞砸了其他值。我的意思是1.0是编码的。一! 这不起作用: 而也没有实现抑制,我绝望地看着,而似乎只对所有其他浮点值打开它,没有能力关闭它。
如何修改大熊猫中产生非常大数字的科学符号的组比操作输出的格式? 我知道如何在python中进行字符串格式设置,但在这里应用它时,我不知所措。 如果我转换成字符串,这会抑制科学记数法,但现在我想知道如何设置字符串格式和添加小数。
问题内容: 我在熊猫中有一个DataFrame,其中一些数字用科学计数法(或指数计数法)表示,如下所示: 科学的表示法使应该进行轻松的比较成为不必要的困难。我认为正是21900的价值将其推向了其他水平。我的意思是1.0被编码。一! 这不起作用: 而且也没有实现抑制,而且我已经绝望了,只能为所有其他float值打开它,而无法关闭它。 问题答案: 您的数据可能是dtype。这是数据的直接复制/粘贴。将
我想我问这个问题,因此使用问题主题是因为我仍然不知道如何正确阅读API,或者我只是错过了一些甚至是基本的火花概念?!
我一直试图用Pandas使用函数读取一些大的文本文件(大小在1.4GB-2GB),但没有结果。以下是我正在使用的版本: Python 2.7.6 Anaconda 1.9.2(64位)(默认值,2013年11月11日,10:49:15)[MSC v.1500 64位(AMD64)] IPython 1.1.0 熊猫0.13.1 我尝试了以下操作: 并且它使Ipython崩溃,并发出一条消息:。 然
问题内容: 我有一系列的格式,需要更改每个条目的日期。我想到了许多简单的解决方案,但是没有一个对我有用。目前,唯一有效的方法是 将系列设置为索引 从索引中查询月份和年份 使用年,月和1重建新的时间序列 真的不是那么复杂,是吗?有一个月开始,但是不幸的是,这没有用。该方法似乎没有任何功能,而当系列是一列而不是索引本身(的一部分)时,功能甚至更少。 问题答案: 您可以使用和,例如: 给出:
问题内容: 我正在尝试在我的matpllotlib Contourf图上自定义颜色条。虽然我能够使用科学记数法,但我尝试更改记数法的基础- 本质上是使我的价格变动范围在(-100,100)而不是(-10,10)内。 例如,这产生了一个简单的情节… 像这样: 但是,我希望颜色栏上方的标签为1e-2,数字范围为-10至10。 我将如何处理? 问题答案: 一种可能的解决方案是按以下问题子类化并固定其数量