Ich verwende BioPython, um eine CSV-Datei mit Daten über Zitate aus ihrem PubMed-Titel zu füllen. Ich habe dies bisher geschrieben:Durchsuchen von PubMed mit BioPython und Schreiben in CSV
import csv
from Bio import Entrez
import bs4
Entrez.email = "my_email"
CSVfile = open('srData.csv')
fileReader = csv.reader(CSVfile)
Data = list(fileReader)
with open('blank.csv','w') as f1:
writer=csv.writer(f1, delimiter='\t',lineterminator='\n',)
for id in Data:
handle = Entrez.efetch(db="pubmed", id=id, rettype="gb", retmode="xml")
record = Entrez.read(handle)
title=record[0]['MedlineCitation']['Article']['ArticleTitle']
abstract=record[0]['MedlineCitation']['Article']['Abstract']
mesh =record[0]['MedlineCitation']['MeshHeadingList']
descriptors = ','.join(term['DescriptorName'] for term in mesh)
writer.writerow([title, abstract, descriptors])
jedoch erzeugt dies eine ungewöhnliche Ausgabe, wo die Titel, Abstract und MeSH Begriffe über mehrere Spalten verteilt sind und nicht getrennt, die nehme ich an ihrer Art zurückzuführen ist.(). Ich wünsche mir, dass meine CSV-Tabelle aus drei Spalten besteht, von denen die eine den Titel, die andere die Zusammenfassung und die andere die Netzbegriffe enthält.
Wie kann ich das erreichen?
Beispielausgabe
Um zu klären, die erste Spalte enthält den gesamten Titel, und der Beginn der abstrakten und die nächsten Spalten enthält nachfolgende Abschnitte des abstrakt. Ich benötige sie aufgeteilt in verschiedene Spalten. dh. Die erste Spalte sollte nur den Titel enthalten. Die Sekunde nur das Abstrakte, das dritte nur MeSH.
Derzeit ist die erste Spalte enthält:
"Distinct and combined vascular effects of ACE blockade and HMG-CoA reductase inhibition in hypertensive subjects. {u'AbstractText': ['Hypercholesterolemia and hypertension are frequently associated with elevated sympathetic activity. Both are independent cardiovascular risk factors and both affect endothelium-mediated vasodilation. To identify the effects of cholesterol-lowering and antihypertensive treatments on vascular reactivity and vasodilative capacity"
Was meinst du mit „dem Titel, Abstrakte und MeSH-Begriffe sind auf mehrere Spalten verteilt "? Können Sie uns eine Beispielausgabe zeigen? – larsks
@Iarsks Habe es getan. – Toby