【问题标题】:Convert float value to integers in Pandas dataframe while ignoring null values将浮点值转换为 Pandas 数据框中的整数,同时忽略空值
【发布时间】:2018-03-13 22:50:38
【问题描述】:

我有两个单独的 csv 文件读入 pandas 数据框。我已经做了一些清理工作,并按日期列加入了表格。我还有另一列名为“ExerciseTime”,并将导入的一天中锻炼时间的时间格式转换为浮点格式,即 22:30:00(晚上 10:30)到 22.5(浮点值)。

我想通过比较一天中的锻炼时间和睡眠质量来运行训练/测试拆分分析(这是我的 Garmin 连接数据和睡眠周期数据)。目前几乎没有准确性/相关性,但我怀疑如果我按小时将“ExerciseTime”列变成虚拟变量,它可能会有所帮助。我想将列中的所有值转换为整数值(向上和向下舍入)并希望忽略任何有空值的实例(我没有锻炼的日子)。我目前在使用以下公式时遇到错误:

JoinedTables = JoinedTables[JoinedTables.ExerciseTime.astype(int)]

忽略空值并将浮点值转换为整数的最佳方法是什么?

另外,如果有人知道用于此类数据的最佳类型模型预测器,我将不胜感激任何想法,因为我对此还是新手。我还有其他数据点,例如“总运动持续时间”、“如果我睡前饮酒”、“那天的运动类型”、“那天的月相”,我也想合并这些数据点,看看是否有任何统计数据严重影响我的睡眠质量。

【问题讨论】:

    标签: python pandas train-test-split


    【解决方案1】:

    pd.to_numeric(col, errors='coerce') 应该可以解决问题:

    JoinedTables['ExerciseTime'] = pd.to_numeric(JoinedTables['ExerciseTime'], errors='coerce')
    

    【讨论】:

    • MaxU,该函数使我能够成功创建另一列,该列仅带来了来自 ExerciseTime 的值,该值具有值,但输出仍保持为浮点值。知道如何改变它吗?
    • @DomB,它将是 float,除非 所有 值都可以转换为整数。如果至少有一个值无法转换为int,那么它将是floatint dtype 不能有 NaN 值...
    猜你喜欢
    • 1970-01-01
    • 2021-04-18
    • 2023-04-08
    • 2014-02-13
    • 1970-01-01
    • 1970-01-01
    • 2021-04-30
    相关资源
    最近更新 更多