【问题标题】: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】:
感谢大家的帮助,我还以为是报错,现在才知道这只是为了表明该列的值是对象类型(我的数据就是这种情况)