我在列中的每一行都有Excel中的许多句子列表。我喜欢3个或更多列这样的句子。这些中有一些常见的句子。是否可以创建一个脚本来创建维恩图并在所有图之间获得通用图。
示例:这些是一列中的句子。同样,有不同的列。
来自癌症的血液淋巴细胞
来自患者的血液淋巴细胞
卵巢肿瘤_Grade III
腹膜肿瘤_Grade IV
激素抗性PCA
是否可以在python中编写脚本?
答案 0 :(得分:2)
这是我对这个问题的解释......
提供数据文件z.csv(将数据从excel导出到csv文件中)
"Blood lymphocytes from cancer","Blood lymphocytes from sausages","Ovarian tumor_Grade III"
"Blood lymphocytes from patients","Ovarian tumor_Grade III","Peritoneum tumor_Grade IV"
"Ovarian tumor_Grade III","Peritoneum tumor_Grade IV","Hormone resistant PCA"
"Peritoneum tumor_Grade XV","Hormone resistant PCA","Blood lymphocytes from cancer"
"Hormone resistant PCA",,"Blood lymphocytes from patients"
该程序找到所有列共有的句子
import csv
# Open the csv file
rows = csv.reader(open("z.csv"))
# A list of 3 sets of sentences
results = [set(), set(), set()]
# Read the csv file into the 3 sets
for row in rows:
for i, data in enumerate(row):
results[i].add(data)
# Work out the sentences common to all rows
intersection = results[0]
for result in results[1:]:
intersection = intersection.intersection(result)
print "Common to all rows :-"
for data in intersection:
print data
并打印出这个答案
Common to all rows :-
Hormone resistant PCA
Ovarian tumor_Grade III
不是100%肯定这是你正在寻找的东西,但希望它能让你开始!
它可以很容易地推广到任意数量的列,但我不想让它更复杂
答案 1 :(得分:0)
你的问题并不完全清楚,所以我可能会误解你在寻找什么。
维恩图只是一些简单的Set操作。 Python将这些东西内置到Set数据类型中。基本上,取两组项目并使用集合操作(例如,使用intersection
查找常用项目。)
要读入数据,最好的办法是将文件保存为CSV格式,然后使用字符串split
方法解析。