给定以下CSV
+-------------------------------+-------------+--------------------+--------------+
| Timestamp | DoublePoint | HexPoint | BooleanPoint |
+-------------------------------+-------------+--------------------+--------------+
| 07/23/2019 16:53:12.523-07:00 | 0.0 | 0x0000000000000001 | True |
| 07/23/2019 16:53:14.519-07:00 | 0.0 | 0x0000000000000002 | False |
| 07/23/2019 16:53:16.516-07:00 | 0.25 | 0x0000000000000003 | true |
| 07/23/2019 16:53:18.513-07:00 | 0.25 | 0x00000004 | false |
| 07/23/2019 16:53:20.526-07:00 | 0.0 | 0x00000005 | True |
| 07/23/2019 16:53:22.522-07:00 | 0.50 | 0x00000006 | False |
| 07/23/2019 16:53:24.519-07:00 | 0.5 | 0x00000007 | True |
| 07/23/2019 16:53:26.516-07:00 | 0.9999 | 0x00000008 | False |
+-------------------------------+-------------+--------------------+--------------+
我需要使用pandas库阅读它,并获得一个数据帧,其中除第一列外,所有列都是浮动的。 对于数字,这应该是自动的,但是对于其他类型的输入,如HexPoint和BooleanPoint,我需要提供一个转换函数来将它们转换为数字
在本例中,十六进制值应转换为十进制,布尔值应将True/True转换为1,将False/False转换为0
因此,生成的数据帧应如下所示:
+-------------------------------+-------------+----------+--------------+
| Timestamp | DoublePoint | HexPoint | BooleanPoint |
+-------------------------------+-------------+----------+--------------+
| 07/23/2019 16:53:12.523-07:00 | 0.0 | 1.0 | 1.0 |
| 07/23/2019 16:53:14.519-07:00 | 0.0 | 2.0 | 0.0 |
| 07/23/2019 16:53:16.516-07:00 | 0.25 | 3.0 | 1.0 |
| 07/23/2019 16:53:18.513-07:00 | 0.25 | 4.0 | 0.0 |
| 07/23/2019 16:53:20.526-07:00 | 0.0 | 5.0 | 1.0 |
| 07/23/2019 16:53:22.522-07:00 | 0.50 | 6.0 | 0.0 |
| 07/23/2019 16:53:24.519-07:00 | 0.5 | 7.0 | 1.0 |
| 07/23/2019 16:53:26.516-07:00 | 0.9999 | 8.0 | 0.0 |
+-------------------------------+-------------+----------+--------------+
重要考虑:
有没有办法告诉pandas读取此CSV并尝试将所有列(第一列除外)转换为float。当它无法以本机方式执行此操作时,运行一个自定义函数,该函数将获取该值并返回其数字表示形式,如上所述
可以使用python中的
float()
方法将十六进制、布尔值和双精度值(如表中的值)直接转换为浮点值试试这个:
此外,在您的输入df中,我看到true/false在小的情况下出现在2个值中,我认为这是不正确的。如果正确,您需要将它们更改为
True/False
,就像其他值一样这应该能奏效
相关问题 更多 >
编程相关推荐