在 sklearn 中读取 arff 文件

问题描述

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

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

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

df.head()

enter image description here

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

解决方法

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

,

看起来您的整数列被读取为字节字符串。您可以尝试使用以下方法转换为 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
,

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