使用转换函数将列值转换为浮点型

在零

给定以下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库读取它,并获得一个DataFrame,其中除第一列之外的所有列都是浮点数。对于数字,这应该是自动的,但是对于其他类型的输入(例如HexPoint和BooleanPoint),我需要提供转换函数以将它们转换为数字。

在此示例中,应将HexPoint值转换为十进制,而BooleanPoints应将True / true转换为1,将False / false转换为0。

因此,生成的DataFrame应该如下所示:

+-------------------------------+-------------+----------+--------------+
|           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 |
+-------------------------------+-------------+----------+--------------+

重要注意事项:

  • 我事先不知道CSV有多少列。
  • 我不知道CSV中的列是哪种数据。它们可以是双精度,十六进制和布尔值的混合。
  • 唯一可以假设的是第一列名为“时间戳”,其中包含时间戳。

有没有一种方法可以告诉熊猫阅读此CSV并尝试将所有列(第一个列除外)转换为浮点型。而当它本身无法做到这一点时,运行一个自定义函数,该函数将采用值并返回如上所述的数字表示形式?

Prashant Kumar

可以使用float()python中方法将十六进制,布尔值和双精度值(如表中存在的值)直接转换为float

尝试这个 :

import pandas as pd

df = pd.read_csv("data.csv")

column_names = df.columns.tolist()
column_names.remove("Timestamp")

print(df)
print(df.dtypes)

print(type(df["DoublePoint"]))

for name in column_names:
  try:
    df[name] = df[name].astype(float)
  except ValueError:
    df[name] = df[name].apply(lambda x: float(int(x, 16)))

print(df)
print(df.dtypes)

另外,在您的输入df中,我看到在2个较小的值中存在true / false,我认为这是不正确的。如果正确,则需要将其更改True/False为其余值。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

来自分类Dev

将字节类型转换为浮点型

来自分类Dev

将列从对象转换为浮点值错误

来自分类Dev

将列从对象转换为浮点的问题

来自分类Dev

将浮点型转换为短型,而精度损失最小

来自分类Dev

SSE内部函数:将32位浮点型转换为UNSIGNED 8位整数

来自分类Dev

值错误:无法将字符串转换为浮点型

来自分类Dev

Swift-将数组中的值转换为双精度或浮点型

来自分类Dev

Python / Sklearn-值错误:无法将字符串转换为浮点型

来自分类Linux

将值转换为列

来自分类Dev

值错误将对象转换为浮点型

来自分类Linux

将对象类型的数据框列转换为浮点型

来自分类Dev

将值数组转换为PHP中的单个浮点值?

来自分类Dev

将熊猫中的时间列从浮点转换为实际时间值

来自分类Dev

如何使用Python将列值转换为Martix

来自分类Dev

使用np.where将列值转换为NaN

来自分类Dev

使用Dataframe将CSV列值转换为多行

来自分类Dev

使用CASE语句将行值转换为结果列

来自分类Dev

如何使用Python将列值转换为行标题?

来自分类Linux

如何将字典值转换为浮点数

来自分类Dev

将美分转换为美元并返回浮点值

来自分类Dev

如何将RGB转换为浮点值?

来自分类Dev

Python-将美元值转换为浮点数

来自分类Dev

将浮点索引插值从MATLAB转换为Python

来自分类Dev

将HTML值转换为Javascript函数

来自分类Dev

如何使用JavaScript将JSON中的浮点值转换为两位小数

来自分类Dev

使用Accelerate框架将单精度浮点值转换为Int 16

来自分类Dev

如何在Python中仅使用年份和月份将浮点列转换为日期时间?

来自分类Dev

如何使用熊猫将整个列字符串转换为数据框内的浮点数?

来自分类Dev

R函数将向量转换为列

TOP 榜单

热门标签

归档