【问题标题】:Reading an arff file in sklearn在 sklearn 中读取 arff 文件
【发布时间】:2023-03-25 23:44:01
【问题描述】:

当我使用以下代码加载 arff 文件时:

from scipy.io import arff
import pandas as pd
data = arff.loadarff('cleveland-76.arff')
df = pd.DataFrame(data[0])

我得到以下输出,其中名义属性前面有一个“b”字母

df.head()

有人知道为什么会这样吗?

【问题讨论】:

    标签: python scikit-learn arff


    【解决方案1】:

    b' 代表字节。它是字节格式,因此 b'4 实际上是二进制代码中的 100。您可以重新格式化列。

    【讨论】:

      【解决方案2】:

      看起来您的整数列被读取为字节字符串。您可以尝试使用以下方法转换为 int

      import pandas as pd
      
      for col in df:
          if pd.api.types.is_object_dtype(df[col]):
              try:
                  df[col] = df[col].astype(int)
              except ValueError:
                  pass
      

      【讨论】:

        【解决方案3】:

        感谢大家的帮助,我还以为是报错,现在才知道这只是为了表明该列的值是对象类型(我的数据就是这种情况)

        【讨论】:

          猜你喜欢
          • 2012-04-14
          • 2011-11-24
          • 2019-06-13
          • 2015-04-03
          • 2020-03-18
          • 2019-05-25
          • 1970-01-01
          • 2017-12-21
          相关资源
          最近更新 更多