Ich muss einen Code schreiben, der eine CSV-Datei und extrahiert Daten im Zusammenhang mit Passagierdaten aus der Titanic. Ich muss aus dieser Datei nehmen und eine neue Datei schreiben, die die Passagiere in der dritten Klasse enthält, die überlebt haben (nur das) und den Header.CSV-Datei schreiben, müssen bestimmte Zeilen in neue CSV-Datei schreiben
Ich habe meinen Code (im Text) Ich habe bis jetzt geschrieben. Es funktioniert für den Testfall (es druckt die # 5), aber meine target_data_file
ist leer, glaube ich?
Ich schaue, wie diese spezifischen Zeilen in meine target_data_file
schreiben. Ich denke, es sollte etwas in Richtung einer for-Schleife mit sein, wenn survived == str(1) and pclass == str(3)
, schreiben Sie an Target_data_file
.
Nicht sicher, obwohl!
Danke!
import csv
from copy import deepcopy
def third_survived(source_data_file, target_data_file):
"""(str, str) -> int
Input: Source data is the name of a .csv file containing a subset of the
Titanic passenger data, and target_data, the name of a new csv file to be
created.
Output: This function will create a new .csv file named target_data_file and
write in it the lines from source_data_file that correspond to the third class
passengers who survived the sinking. The function returns the number of lines
written to target_data_file.
>>>third_survived('titanic_some.csv', 'titanic_target.csv')
5
"""
with open (str(source_data_file), 'r') as file:
data_reader=csv.reader(file)
data_orig=[]
for row in data_reader:
data_orig.append(row)
count= 0
for elements in range(1,len(data_orig)):
survived=data_orig[elements][1]
pclass=data_orig[elements][2]
if survived == str(1) and pclass == str(3):
count +=1
with open(str(target_data_file), 'w') as newfile:
data_writer=csv.writer(newfile)
if count == 0:
return data_orig[0]
else:
return count