我想阅读CSV
个文件并连续获得第一个元素的相似单词。如果有,则比较此行中的其他元素。
F.e。 test_items.csv:
name, value1, value2
ball, 2.5, 2.3
table, 112.5, 3.5
pen, 8.1, 3.5, 4.7
pin_items.csv:
name, value1, value2
balls, 2.5, 2.3
table1, 112.5, 3.5
pens12, 8.1, 3.5, 4.7
代码:
with open('test_items.csv', 'r') as plik:
tab = []
for element in csv.reader(plik):
tab.append(element)
with open('pin_items.csv', 'r') as plik1:
tab1=[]
for element1 in csv.reader(plik1):
tab1.append(element1)
for row in tab:
for row1 in test:
z = get_close_matches(row[0], row1[0])
print z
在这种情况下,获取空“[]”
的输出但是当我使用它时:
with open('test_items.csv', 'r') as plik:
tab = []
for element in csv.reader(plik):
tab.append(element)
with open('pin_items.csv', 'r') as plik1:
tab1=[]
for element1 in csv.reader(plik1):
tab1.append(element1)
for i in [row[0] for row in tab]:
z = get_close_matches(i,[row1[0] for row1 in tab1])
print z
然后它正确匹配名称的主题,但我无法比较匹配行的主题值。
有什么建议吗?我正在使用Python 2.7.11,谢谢。
答案 0 :(得分:0)
import csv
with open('test_items.csv', 'r') as plik, open('pin_items.csv', 'r') as plik1:
r1 = csv.DictReader(plik)
r2 = csv.DictReader(plik1)
names1 = {}
names2 = {}
for line in r1:
names1[line['name']] = line
for line in r2:
if line['name'] in names1.keys():
l1 = names1['name']
l2 = line
# do whatever you want with them here
这假设名称字段在csv中是唯一的
答案 1 :(得分:0)
问题解决了。
我没有使用" []"对于get_close_matches的可能性。
F.e。 : get_close_matches(&#39; appel&#39;,[&#39; ape&#39;,&#39; apple&#39;,&#39;桃子&#39;,&#39;小狗&#39;])< / p>
感谢所有回复。
答案 2 :(得分:-1)
我认为这是你的要求吗?
[[ 0.44 0.3 6.5 ]
[ 0.25555556 0.6 2.2 ]]