如何从 python 中的文件中获取一行的多个片段?
How to take multiple slices of a line from a file in python?
python有没有办法指定多个切片来从 csv 文件中读取某些列?
例如,数据文件可以如下所示:
col1,col2,col3,...col20
1,1,1,....,1
2,2,2,....,2
3,3,3,....,3
etc
是否可以有一个命令来抓取前 4 列和后 2 列?我尝试了以下两种方法,但我只是在黑暗中刺伤,所以没想到它会起作用。一种方法给我一个 ValueError,另一种方法给我一个 TypeError。
for line in fileObj:
date, name, time, data1, data2, data3 = line.rstrip().split(',')[0:4][18:20] # got ValueError
for line in fileObj:
date, name, time, data1, data2, data3 = line.rstrip().split(',')[0:4,18:20] # got TypeError
如果没有简单的方法,有人可以给我一个可能的方向的提示吗?
你走在正确的轨道上...
for line in fileObj:
splitline = line.rstrip().split(',')
date, name, time, data1 = splitline[0:4]
data2, data3 = splitline[18:20]
或者如果您想合并 2 行:
for line in fileObj:
splitline = line.rstrip().split(',')
date, name, time, data1, data2, data3 = splitline[0:4] + splitline[18:20]
使用 csv 模块:
import csv
with open(filename, 'r') as openfile:
reader = csv.reader(openfile)
for line in reader:
date, name, time, data1 = line[:4]
data2, data3 = line[-2:]
这将解包前四列和最后两列
Pandas 是在 Python 中处理 .csv 文件的最佳库。例如,使用文件:
col1,col2,col3,col4,col5,col6
1,1,1,1,1,1
2,2,2,2,2,2
3,3,3,3,3,3
要获取前 4 列和后 2 列,您只需要:
import pandas as pd
df = pd.read_csv('csvtest.csv')
first_four_columns = df.ix[:,:4]
last_two_columns = df.ix[:,-2:]
我真的建议你看看 pandas 图书馆:
http://pandas.pydata.org/pandas-docs/stable/10min.html
python有没有办法指定多个切片来从 csv 文件中读取某些列?
例如,数据文件可以如下所示:
col1,col2,col3,...col20
1,1,1,....,1
2,2,2,....,2
3,3,3,....,3
etc
是否可以有一个命令来抓取前 4 列和后 2 列?我尝试了以下两种方法,但我只是在黑暗中刺伤,所以没想到它会起作用。一种方法给我一个 ValueError,另一种方法给我一个 TypeError。
for line in fileObj:
date, name, time, data1, data2, data3 = line.rstrip().split(',')[0:4][18:20] # got ValueError
for line in fileObj:
date, name, time, data1, data2, data3 = line.rstrip().split(',')[0:4,18:20] # got TypeError
如果没有简单的方法,有人可以给我一个可能的方向的提示吗?
你走在正确的轨道上...
for line in fileObj:
splitline = line.rstrip().split(',')
date, name, time, data1 = splitline[0:4]
data2, data3 = splitline[18:20]
或者如果您想合并 2 行:
for line in fileObj:
splitline = line.rstrip().split(',')
date, name, time, data1, data2, data3 = splitline[0:4] + splitline[18:20]
使用 csv 模块:
import csv
with open(filename, 'r') as openfile:
reader = csv.reader(openfile)
for line in reader:
date, name, time, data1 = line[:4]
data2, data3 = line[-2:]
这将解包前四列和最后两列
Pandas 是在 Python 中处理 .csv 文件的最佳库。例如,使用文件:
col1,col2,col3,col4,col5,col6
1,1,1,1,1,1
2,2,2,2,2,2
3,3,3,3,3,3
要获取前 4 列和后 2 列,您只需要:
import pandas as pd
df = pd.read_csv('csvtest.csv')
first_four_columns = df.ix[:,:4]
last_two_columns = df.ix[:,-2:]
我真的建议你看看 pandas 图书馆: http://pandas.pydata.org/pandas-docs/stable/10min.html