我在csv文件的第1列中有一个令牌列表,如图所示:
subject rate
['a','b','c'] 0.11
['a','d','c'] 0.3
['c','e'] 0.07
['f','g','h','i'] 0.18
以下是导致上述格式的代码:
reader = csv.reader(open('prom_sub.csv', 'r'))
writer = csv.writer(open('prom_token.csv', 'w', newline = ''))
stop_words = set(stopwords.words('english'))
for row in reader:
s = row[0]
r = row[1]
rm_dig = str.maketrans('','', digits)
s = s.translate(rm_dig)
tr = str.maketrans('','', string.punctuation)
tokens = nltk.word_tokenize(s.lower().translate(tr))
filtered_sentence = [w for w in tokens if not w in stop_words]
writer.writerow([filtered_sentence, r])
现在,我想把第2列中的值赋给第1列中的每个标记。也就是说,我想这样做:
subject rate
a 0.11
b 0.11
c 0.11
a 0.3
d 0.3
c 0.3
c 0.07
e 0.07
f 0.18
g 0.18
h 0.18
i 0.18
我尝试使用一个简单的for循环以所需的格式获取列1。使用python还有其他方法可以做到这一点吗? 我想从舞会上得到上面提到的格式_令牌.csv在另一个csv文件中。谢谢。你知道吗
你没有把你的代码放在这里,所以也许
collections.defaultdict
会帮助你,我不确定我的代码,因为我现在的系统中没有python,我想这样的东西会帮助你:你的中介格式很难处理。第一个字段是字符串列表的Python表示,这不是标准格式。如果可以的话,你应该避免那样做。你知道吗
假设您除了该格式别无选择,唯一可靠的解析方法是
literal_eval
在ast
模块中,它将返回字符串的原始列表,即使是在转角情况下也是如此。所以你的转换脚本可以是:相关问题 更多 >
编程相关推荐