CSV文件用記事本打開后一般為由逗號隔開的字符串,其處理方法用Python的代碼如下。為方便各種程度的人閱讀在代碼中有非常詳細的注釋。
1.查詢指定列,并保存到新的csv文件。
# -*- coding: utf-8 -*- ''''' Author: Good_Night Time: 2018/1/30 03:50 Edition: 1.0 ''' # 導入必須的csv庫 import csv # 創建臨時文件temp.csv找出所需要的列 temp_file = open("temp.csv", "w", newline='') # 如果不指定newline='',則每寫入一行將有一空行被寫入 temp_csv_writer = csv.writer(temp_file, dialect="excel") # 讀取input.csv文件,此時只有指定的一列數據 with open('input.csv') as file: temp_readcsv = csv.reader(file, delimiter=',') for row in temp_readcsv: # 取出input.csv所有列數據 temp = [row[3]] # 得到指定列數據 # print(row[3]) #print()打印input.csv文件中第3列所有數據 temp_csv_writer.writerow(temp) # 第3列每行數據循環寫入temp.csv文件中 temp_file.close()
2.查詢指定列中,每行數據出現在所有行數據的次數,并保存到新的csv文件。
# -*- coding: utf-8 -*- ''''' Author: Good_Night Time: 2018/1/30 03:50 Edition: 1.0 ''' # 導入必須的csv庫 import csv # 創建臨時文件temp.csv找出所需要的列 temp_file = open("temp.csv", "w", newline='') # 如果不指定newline='',則每寫入一行將有一空行被寫入 temp_csv_writer = csv.writer(temp_file, dialect="excel") # 讀取input.csv文件,此時只有指定的一列數據 with open('input.csv') as file: temp_readcsv = csv.reader(file, delimiter=',') for row in temp_readcsv: # 取出input.csv所有列數據 temp = [row[3]] # 得到指定列數據 # print(row[3]) #print()打印input.csv文件中第3列所有數據 temp_csv_writer.writerow(temp) # 第3列每行數據循環寫入temp.csv文件中 temp_file.close() # 在臨時文件基礎上匹配所要找的數據,計算出次數生成out.csv文件 flag = 0 # 臨時變量 out1 = [] # 新建數組來保存指定列的每行數據 time = [] # 新建數組來保存指定列的每行數據出現的次數 out_file = open("out.csv", "w", newline='') # 如果不指定newline='',則每寫入一行將有一空行被寫入 out_csv_writer = csv.writer(out_file, dialect="excel") out_csv_writer.writerow(["TIMES"]) # 讀取temp.csv文件,此時只有指定的一列數據 with open('temp.csv') as file2: out_readcsv = csv.reader(file2, delimiter=',') for St in out_readcsv: # 循環取出列的每行數據 out1.append(St) # append()將列的每行數據變為out1鏈表(list)的后續增加的元素,即將列數據變為一維數組。 # print(out1[1]) # 打印out1[n]的第n個元素,即原列的第n行元素 for i in range(len(out1)): # len()獲得out1鏈表(list)中元素的個數,便于判斷循環次數。 # print(out1[i]) # 打印out1鏈表所有元素,檢驗循環是否出錯 flag = out1.count(out1[i]) # count()獲得out1鏈表中第i個元素在所有元素中出現的次數。 time.append(flag) # 將獲得的某元素出現的次數按順序保存至time[]數組里 # print(time) # 打印顯示所有元素出現的次數,判斷是否出錯 for j in range(len(out1)): # len()得到out1鏈表元素個數,依此作為time[]查找下標 times = [time[j]] # 取出元素對應出現的次數 out_csv_writer.writerow(times) # 寫入out.csv文件里 print(times) # 打印顯示次數 out_file.close()
新聞熱點
疑難解答