使用pandas處理csv檔案
import pandas as pd
import numpy as np
from collections import counter
#開啟csv檔案並且只使用第7列和第十四列
#引號內為athlete_events.csv的位址 根據個人情況修改
data=pd.read_csv('c:\\users\\lcega\\desktop\\athlete_events.csv',usecols=[7,14])
#資料1取資料中資料項'medal'為'gold'的數(金銀銅牌中的金牌選手)
data1=data[data['medal']=='gold']
list=np.array(data1['noc'])
#data1['noc']改為data['noc'] --> 統計獎牌最高及前三
#列表list使用array將金牌選手的國籍排列如下
#['den' 'fin' 'fin' ... 'ned' 'ned' 'urs']
result=counter(list)#counter函式輸出列表中相同的資料的個數
print(result.most_common(3))#most_common(n)輸出列表中資料出現次數最多的前三名
data.close()
#下面是一些基礎操作
# print(data.head()) 輸出資料前5行
# print(data.dtypes) 資料的型別
#print(data.columns) 列印資料所有的列名
# print(data.columns[2]) 列印資料第三列的列名
# print(data.ix[1:5,7:15]) 列印1到5行的7到15列
使用列表及字典,sorted完成排序處理
f = open(r'c:\users\lcega\desktop\athlete_events.csv', 'r') #開啟檔案所在目錄
dict = {} #建立用於儲存國家名字的字典
listtop = f.readline().split(',') #讀取第一行並且用逗號分割各元素存入列表
listtop2 = f.readline()
print(listtop2)
cnt_team = listtop.index('"team"') #將列表中的team列命名cnt_team
for line in f:
list = line.split(',') #每一行都按『,』分割
if list[cnt_team] in dict:
dict[list[cnt_team]] += 1 #在dict中國家名字出現過,則它+=1
else:
dict[list[cnt_team]] = 1 #在dict中國家名字沒出現過,賦值為1
ans = sorted(dict, key=lambda x:dict[x]) #字典按x排序
print(type(ans))
print(ans[-1], dict[ans[-1]])
print(ans[-2], dict[ans[-2]])
print(ans[-3], dict[ans[-3]]) #取最多的三個
f.close()
針對統計所有獎牌獲得者的執行結果 二者會有差異
pandas的資料是準確的,第二種資料統計 差異具體是啥原因 咱也不知道。
資料檔案:
提取碼:ko1c
檔案資料處理
一 檔案的讀寫 1 輸入輸出重定向 命令列格式 c programoutputfile 即執行名為program。exe的可執行程式,用檔案inputfile作為輸入,用檔案outputfile作為輸出。例如 c addnumbers output.txt 從檔案number.txt中讀取資料,執行...
python CSV檔案處理
import csv 這種方式讀取到的每一條資料是乙個列表,所以需要通過下標的方式獲取具體某乙個值 with open stock.csv r encoding gbk as fp reader csv.reader fp for x in reader print x 3 這種方式讀取到的每一條資...
c 學習(4)vector,檔案資料處理
1,vector 注意容易混淆的問題 各種括號 vectorv1 10 v1有10個int元素,每個都初始化為0 vectorv2 v2有1個元素,值是10 vectorv3 10 v3是有10個元素的陣列,相當於二維陣列。每個元素都是乙個空vector物件 vectorv4 10,1 v4有10個...