![](/img/trans.png)
[英]Compare two collections.defaultdict and remove similar values
[英]accessing the values of collections.defaultdict
我有一個csv文件,我想按列閱讀,因為我有以下代碼:
from collections import defaultdict
from csv import DictReader
columnwise_table = defaultdict(list)
with open("Weird_stuff.csv",'rU') as f:
reader = DictReader(f)
for row in reader:
for col,dat in row.items():
columnwise_table[col].append(dat)
#print(columnwise_table.items()) # this gives me everything
print(type(columnwise_table[2]) # I'm look for smt like this
我的問題是如何只獲取一個特定列的所有元素? 而且我沒有使用conda並且矩陣很大2400x980
UPDATE
我有980列,超過2000行,我需要使用feature1
第一列[0]: feature1
第二列[0]: j_ss01
第50列: Abs2
等來處理文件
因為我無法使用列名訪問字典,所以我想為此使用索引。 這可能嗎 ?
通過對row.items進行迭代,您可以獲得所有列。
如果您只希望通過索引號指定一列,請改用csv.reader
和列索引。
from csv import reader
col_values = []
# Column index number to get values from
col = 1
with open("Weird_stuff.csv",'rU') as f:
reader = reader(f)
for row in reader:
col_val = row[col]
col_values.append(col_val)
# contains only values from column index <col>
print(col_values)
import csv
import collections
col_values = collections.defaultdict(list)
with open('Wierd_stuff.csv', 'rU') as f:
reader = csv.reader(f)
# skip field names
next(reader)
for row in csv.reader(f):
for col, value in enumerate(row):
col_values[col].append(value)
# for each numbered column you want...
col_index = 33 # for example
print(col_values[col_index])
如果您知道事先想要的列,那么僅存儲這些列可以節省一些空間...
cols = set(1, 5, 6, 234)
...
for col, value in enumerate(row):
if col in cols:
col_values[col].append(value)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.