如何在Python中将txt文件作为数据加载?

时间:2015-11-11 22:58:19

标签: python numpy scikit-learn

我正在学习如何使用sklearn和scikit以及所有这些来进行机器学习。

我想知道如何将其导入为数据?

enter image description here

这是来自百万种歌曲类型数据集的数据集。

如何让我的data.target[0]等于"经典的流行音乐和摇滚" (作为0)和data.target[1]等于0,这是"经典流行音乐和摇滚音乐"并且data.target[640]等于1,这是"民间"?

我的data.data[0,:]等于-8.697155.007,1,9等等(标题栏后面的所有数值)

1 个答案:

答案 0 :(得分:2)

正如其他人所提到的那样,对于你正在寻找什么样的形状有点不清楚,但作为一般的首发,并且将数据转换为非常灵活的格式,你可以将文本文件读入python并将其转换为熊猫数据框。我确信他们是其他更紧凑的方法,但只是提供我们可以开始的明确步骤:

import pandas as pd
import re 

file = 'filepath' #this is the file path to the saved text file
music = open(file, 'r')
lines = music.readlines()
# split the lines by comma
lines = [line.split(',') for line in lines]
# capturing the column line
columns = lines[9]
# capturing the actual content of the data, and dismissing the header info
content = lines[10:]

musicdf = pd.DataFrame(content)
# assign the column names to our dataframe
musicdf.columns = columns
# preview the dataframe
musicdf.head(10)

# the final column had formatting issues, so wanted to provide code to get rid of the "\n" in both the column title and the column values

def cleaner(txt):
    txt = re.sub(r'[\n]+', '', txt)
    return txt

# rename the column of issue
musicdf = musicdf.rename(columns = {'var_timbre12\n' : 'var_timbre12'})

# applying the column cleaning function above to the column of interest
musicdf['var_timbre12'] = musicdf['var_timbre12'].apply(lambda p: cleaner(p))

# checking the top and bottom of dataframe for column var_timbre12
musicdf['var_timbre12'].head(10)
musicdf['var_timbre12'].tail(10)

结果如下:

             %genre            track_id       artist_name  
0  classic pop and rock  TRFCOOU128F427AEC0  Blue Oyster Cult   
1  classic pop and rock  TRNJTPB128F427AE9F  Blue Oyster Cult 

通过使用此格式的数据,您现在可以使用pandas groupby函数执行大量分组任务,查找某些类型及其相关属性等。

希望这有帮助!