2017-04-23 58 views
1

#程序將數據從2 csv文件
的cdc_list被read_csv爲什麼在調用total_list函數read_csv()後cdc_list得到更新?

overall_list = [] 
def read_csv(filename): 

    file_read = open(filename,"r").read() 
    file_split = file_read.split("\n") 
    string_list = file_split[1:len(file_split)] 
    #final_list = [] 
    for item in string_list: 
     int_fields = [] 
     string_fields = item.split(",") 
     string_fields = [int(x) for x in string_fields] 
     int_fields.append(string_fields) 
     #final_list.append() 
     overall_list.append(int_fields) 
    return(overall_list) 

cdc_list = read_csv("US_births_1994-2003_CDC_NCHS.csv") 
print(len(cdc_list)) #3652 

total_list = read_csv("US_births_2000-2014_SSA.csv") 
print(len(total_list)) #9131 
print(len(cdc_list)) #9131 
+0

不知道,但你爲什麼不使用內置的CSV庫(https://docs.python.org/3/library/csv.html),或什麼更好的像用於數據操作的Pandas(http://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html)? – TLousky

+0

我剛剛開始使用DataQuest的python,並陷入了這段代碼。 反正...感謝您的建議。 –

回答

0

我不認爲你粘貼的代碼說明你有這個問題的第二個電話後更新結合起來,至少它不是我能確定的任何地方。好像上面粘貼的代碼中沒有包含很多代碼,這可能是負責任的。

但是,如果你想要做的是合併兩個的CSV(假設它們都具有相同的列),你可以使用Pandasread_csv和熊貓數據幀的方法appendto_csv,用3行代碼實現這一點(不包括進口):

import pandas as pd 

# Read CSV file into a Pandas DataFrame object 
df = pd.read_csv("first.csv") 

# Read and append the 2nd CSV file to the same DataFrame object 
df = df.append(pd.read_csv("second.csv")) 

# Write merged DataFrame object (with both CSV's data) to file 
df.to_csv("merged.csv") 
+0

感謝您的幫助。 –

相關問題