我的文件有多列,我将它们存储在列表中供以后使用。但有时我不知道究竟有多少列,所以我必须不断调整我定义的列表数量。
因此我想知道是否有更快的方法来定义 n 数量的列表,所以我不必担心像我一样追加每一个列表在下面做什么?
col_header = []
c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11 = [[] for i in range(11)]
with open(file_name, 'r') as f:
reader = csv.reader(f)
for i, row in enumerate(reader):
if i == 0:
col_header.append(row)
elif len(row)!=0:
c1.append(float(row[0]))
c2.append(float(row[1]))
c3.append(float(row[2]))
c4.append(float(row[3]))
c5.append(float(row[4]))
#etc..
答案 0 :(得分:1)
list_of_lists =[c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11]
for list in list_of_lists:
list.append(float(row[0]))
请注意,在Python中,代码
list0 = [value0]
list_of_list[0] = list0
list_of_list[0].append(value1)
print(list0)
将输出[value0,value2]; list_of_list不包含list0的副本,但是对list0的引用,因此更改list_of_list [0]也会更改list0。
您也可以使用Panda DataFrames或numPy数组,然后您不必处理所有这些for循环,您可以使用pd.read_csv然后将该数据帧附加到原始数据框。
答案 1 :(得分:0)
您可以定义包含所有c
c1, c2, c3...
答案 2 :(得分:0)
正如其他人所说,你应该将列设置为列表,这可能是一个好的开始。
col_header = []
def create_columns(n):
list_of_columns = []
for i in range(n):
list_of_columns.append([])
return list_of_columns
columns = create_columns(10)
with open(file_name, 'r') as f:
reader = csv.reader(f)
for i, row in enumerate(reader):
if i == 0:
col_header.append(row)
elif len(row)!=0:
for index, col in enumerate(columns):
col.append(float(row[index]))