我在.csv文件中具有以下数据:
1,-100,phrase1
2,-100,phrase2
3,1,phrase3
4,-100,phrase4
5,1,phrase5
我想在找到-100时将所有“短语*”添加到一个字符串中,并用逗号分隔直到最后一个条目。到目前为止,我有以下内容:
import csv
output = []
with open('test_file.csv') as test_file:
csv_reader_object = csv.reader(test_file)
for expression_id, expression_weight, expression_phrase in csv_reader_object:
expression_weight = int(expression_weight)
if expression_weight == -100:
output.append(expression_phrase)
print(output)
我以为我可以遍历该列表,找到-100,将expression_phrase添加到一个列表,然后遍历该列表,并将所有表达短语添加到一个大字符串中。我正在寻找以下输出:
字符串=(短语1,短语2,短语4)
任何帮助/提示都值得赞赏。我的头一直在想解决这个问题。
您可以在python中通过过滤行并将结果加入逗号来紧凑地执行此操作。在这种情况下,将"-100"
比较为字符串似乎可以,尽管在更复杂的情况下可能需要进行转换]
import csv
with open('test_file.csv') as test_file:
final = ",".join(row[2] for row in csv.reader(test_file) if row[1] == "-100")
print(final)
如果要收集多个字符串,可以将其转换为for循环。
import csv
with open('test_file.csv') as test_file:
phrases_1 = []
phrases_2 = []
for row in csv.reader(test_file):
if row[1] == "-100":
phrases_1.append(row[2])
if row[0] == "1":
phrases_2.append(row[2])
return ",".join(phrases_1), ",".join(phrases_2)
您也可以再次选择第一个选项。您将花费更多的时间来解析csv,但我认为不会有太大的区别。