我有一个以下格式的csv文件,我正在尝试规范化。数字表示关联字符串的计数。该文件包含近100K条目。
159028,CASSVDGSYEQYFGPG
86832,CASSLQLYFGEG
74720,CASSQDQDTQYFGPG
71701,CASSRVGSDYTFGSG
69360,CARNVTPPKSYAVFFGKG
52458,CAAEQFFGPG
51406,CASSSGDQDTQYFGPG
50305,CASQLYFGEG
38745,CAYFGPG
32565,CASSPDWGENTLYFGAG
我尝试使用以下
创建字典import csv
input = csv.DictReader(open("data.csv"))
for row in input:
print(row)
结果
{'159028': '86832', 'CASSVDGSYEQYFGPG': 'CASSLQLYFGEG'}
{'159028': '74720', 'CASSVDGSYEQYFGPG': 'CASSQDQDTQYFGPG'}
{'159028': '71701', 'CASSVDGSYEQYFGPG': 'CASSRVGSDYTFGSG'}
{'159028': '69360', 'CASSVDGSYEQYFGPG': 'CARNVTPPKSYAVFFGKG'}
{'159028': '52458', 'CASSVDGSYEQYFGPG': 'CAAEQFFGPG'}
{'159028': '51406', 'CASSVDGSYEQYFGPG': 'CASSSGDQDTQYFGPG'}
{'159028': '50305', 'CASSVDGSYEQYFGPG': 'CASQLYFGEG'}
{'159028': '38745', 'CASSVDGSYEQYFGPG': 'CAYFGPG'}
{'159028': '32565', 'CASSVDGSYEQYFGPG': 'CASSPDWGENTLYFGAG'}
...
而不是
{'CASSVDGSYEQYFGPG': 159028}
{'CASSLQLYFGEG': '86832'}
{'CASSQDQDTQYFGPG': '74720'}
{'CASSRVGSDYTFGSG': '71701'}
{'CARNVTPPKSYAVFFGKG': '69360'}
{'CAAEQFFGPG': '52458'}
{'CASSSGDQDTQYFGPG': '51406'}
{'CASQLYFGEG': '50305'}
{'CAYFGPG': '38745'}
{'CASSPDWGENTLYFGAG': '32565'}
...
我也尝试将csv文件转换为numpy数组,但我得到以下内容:
>>>from numpy import genfromtxt
>>>data = genfromtxt('data.csv', delimiter=',')
>>>data
array([[ 1.59028000e+05, nan],
[ 8.68320000e+04, nan],
[ 7.47200000e+04, nan],
...,
[ 1.00000000e+00, nan],
[ 1.00000000e+00, nan],
[ 1.00000000e+00, nan]])
可能还有其他方法可以通过Python对这些数据进行规范化和其他数据处理。
答案 0 :(得分:1)
使用Numpy loadtxt导入,如果你需要它作为词典,则使用dict理解。
import numpy as np
arr = np.loadtxt('data.csv', dtype=str, delimiter=",")
b = dict([(y, x) for (x, y) in arr])
答案 1 :(得分:0)
genfromtxt
有很多参数,学习正确的咒语可能需要一段时间来阅读任何给定的文件。
以下是如何使用您的文件执行此操作的方法。 data
返回的数组genfromtxt
是一维structured array,有两个字段,分别为count
和string
:
In [11]: data = np.genfromtxt("counts_strings.csv", delimiter=',', names=['count', 'string'], dtype=None)
In [12]: data['count']
Out[12]:
array([159028, 86832, 74720, 71701, 69360, 52458, 51406, 50305,
38745, 32565])
In [13]: data['string']
Out[13]:
array([b'CASSVDGSYEQYFGPG', b'CASSLQLYFGEG', b'CASSQDQDTQYFGPG',
b'CASSRVGSDYTFGSG', b'CARNVTPPKSYAVFFGKG', b'CAAEQFFGPG',
b'CASSSGDQDTQYFGPG', b'CASQLYFGEG', b'CAYFGPG', b'CASSPDWGENTLYFGAG'],
dtype='|S18')
In [14]: data[0]
Out[14]: (159028, b'CASSVDGSYEQYFGPG')