作者:小小明
之前有位群友遇到了arff格式的数据,却不知道怎么读取:
然后我让这位群友把文件发我,给我分析一下,我用文件编辑器打开后,发现格式如下:
只是一个文本文本而已,解析文本文件我实在太擅长了。可以看到:
理解了这三点,我马上就能用pandas直接读取它,下面看看代码:
import pandas as pd
with open("adult_census_19210979.arff", encoding="utf-8") as f:
header = []
for line in f:
if line.startswith("@attribute"):
header.append(line.split()[1])
elif line.startswith("@data"):
break
df = pd.read_csv(f, header=None)
df.columns = header
df
结果:
为了后续使用方便,我们可以将上面的代码封装成函数:
def read_arrf(file):
with open(file, encoding="utf-8") as f:
header = []
for line in f:
if line.startswith("@attribute"):
header.append(line.split()[1])
elif line.startswith("@data"):
break
df = pd.read_csv(f, header=None)
df.columns = header
return df
这样,读取任何arrf文件都方便,只需要直接传入即可:
read_arrf("adult_census_19210979.arff")
然后我得到了: