【问题标题】:How to use Pandas with float values如何使用具有浮点值的 Pandas
【发布时间】:2019-08-22 19:19:45
【问题描述】:

我有来自 csv 的数据:

36849|17|4.7|20180118103240
36792|17|5.3|20180118103238

4.7 和 5.3 是浮动的

但是当我这样做时:

scores_data_train = pd.read_csv('../Dataset/TrainData//u.score.csv', sep='|')
scores_train = scores_data_train.as_matrix()
print(scores_train[:1, :])

结果:

[[3.68490000e+04 1.70000000e+01 4.70000000e+00 2.01801181e+13]]

请帮助我。谢谢

【问题讨论】:

  • 你为什么使用as_matrix?这里的意图是什么?看起来结果完全正确。有什么问题?

标签: pandas matrix


【解决方案1】:

as_matrix() 方法将数据帧转换为 numpy 数组,根据定义,该数组仅限于单一数据类型。您不能将某些元素视为浮点数,而将其他元素视为整数。

只要不调用.as_matrix(),就会有一个数据框,可以有整数列和浮点列。每列的类型可以通过调用pd.read_csv(..., dtype={"colname": "int", "colname2": "float"})来指定。

【讨论】:

    【解决方案2】:

    请在导入 numpy. 参考similar questions, please check

       import numpy as np  
       np.set_printoptions(suppress=True,
       formatter={'float_kind':'{:0.2f}'.format}) 
    

    #float, 2 个单位 #precision right, 0 on left

    【讨论】:

    • pandas 选项不会影响 .as_matrix() 返回的 numpy 数组的输出格式 - 在那之后,它就基本不在 pandas 手中了。
    • 想法是在转换为矩阵之前使用它。那不行吗?
    • 不幸的是,该选项仅在 pandas 数据帧中的浮点数被格式化为字符串时才会生效。调用 .as_matrix() 会将数据框转换为浮点数组,因此 pandas 显示格式不起作用。
    猜你喜欢
    • 2013-06-25
    • 2012-01-14
    • 2021-06-25
    • 1970-01-01
    • 2016-07-16
    • 2015-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多