python csv檔案資料處理

2021-09-25 15:02:28 字數 2020 閱讀 2584

使用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個...