摘要:按照某一列的數(shù)值進(jìn)行排序后輸出。根據(jù)國(guó)籍這一列的屬性進(jìn)行分組,然后分別計(jì)算相同國(guó)籍的潛力的平均值。值得注意的是,在分組函數(shù)后面使用一個(gè)函數(shù)可以返回帶有分組大小的結(jié)果。
這篇文章中使用的數(shù)據(jù)集是一個(gè)足球球員各項(xiàng)技能及其身價(jià)的csv表,包含了60多個(gè)字段。數(shù)據(jù)集下載鏈接:數(shù)據(jù)集
1、DataFrame.info()這個(gè)函數(shù)可以輸出讀入表格的一些具體信息。這對(duì)于加快數(shù)據(jù)預(yù)處理非常有幫助。
import pandas as pd import matplotlib.pyplot as plt data = pd.read_csv("dataset/soccer/train.csv") print(data.info())
2、DataFrame.query()RangeIndex: 10441 entries, 0 to 10440 Data columns (total 65 columns): id 10441 non-null int64 club 10441 non-null int64 league 10441 non-null int64 birth_date 10441 non-null object height_cm 10441 non-null int64 weight_kg 10441 non-null int64 nationality 10441 non-null int64 potential 10441 non-null int64 ... dtypes: float64(12), int64(50), object(3) memory usage: 5.2+ MB None
import pandas as pd import matplotlib.pyplot as plt data = pd.read_csv("dataset/soccer/train.csv") print(data.query("lw>cf")) # 這兩個(gè)方法是等價(jià)的 print(data[data.lw > data.cf]) # 這兩個(gè)方法是等價(jià)的3、DataFrame.value_counts()
這個(gè)函數(shù)可以統(tǒng)計(jì)某一列中不同值出現(xiàn)的頻率。
import pandas as pd import matplotlib.pyplot as plt data = pd.read_csv("dataset/soccer/train.csv") print(data.work_rate_att.value_counts())
Medium 7155 High 2762 Low 524 Name: work_rate_att, dtype: int644、DataFrame.sort_values()
按照某一列的數(shù)值進(jìn)行排序后輸出。
import pandas as pd import matplotlib.pyplot as plt data = pd.read_csv("dataset/soccer/train.csv") print(data.sort_values(["sho"]).head(5))5、DataFrame.groupby()
根據(jù)國(guó)籍(nationality)這一列的屬性進(jìn)行分組,然后分別計(jì)算相同國(guó)籍的潛力(potential)的平均值。
import pandas as pd import matplotlib.pyplot as plt data = pd.read_csv("dataset/soccer/train.csv") potential_mean = data["potential"].groupby(data["nationality"]).mean().head(5) print(potential_mean)
nationality 1 74.945338 2 72.914286 3 67.892857 4 69.000000 5 70.024242 Name: potential, dtype: float64
根據(jù)國(guó)籍(nationality),俱樂部(club)這兩列的屬性進(jìn)行分組,然后分別計(jì)算球員潛力(potential)的平均值。
import pandas as pd import matplotlib.pyplot as plt data = pd.read_csv("dataset/soccer/train.csv") potential_mean = data["potential"].head(20).groupby([data["nationality"], data["club"]]).mean() print(potential_mean)
nationality club 1 148 76 461 72 5 83 64 29 593 68 43 213 67 51 258 62 52 112 68 54 604 81 63 415 70 64 359 74 78 293 73 90 221 70 96 80 72 101 458 67 111 365 64 379 83 584 65 138 9 72 155 543 72 163 188 71 Name: potential, dtype: int64
值得注意的是,在分組函數(shù)后面使用一個(gè)size()函數(shù)可以返回帶有分組大小的結(jié)果。
potential_mean = data["potential"].head(200).groupby([data["nationality"], data["club"]]).size()
nationality club 1 148 1 43 213 1 51 258 1 52 112 1 54 604 1 78 293 1 96 80 1 101 458 1 155 543 1 163 188 1 Name: potential, dtype: int646、DataFrame.agg()
這個(gè)函數(shù)一般在groupby函數(shù)之后使用。
import pandas as pd import matplotlib.pyplot as plt data = pd.read_csv("dataset/soccer/train.csv") potential_mean = data["potential"].head(10).groupby(data["nationality"]).agg(["max", "min"]) print(potential_mean)
max min nationality 1 76 76 43 67 67 51 62 62 52 68 68 54 81 81 78 73 73 96 72 72 101 67 67 155 72 72 163 71 717、DataFrame.apply()
將某一個(gè)函數(shù)應(yīng)用到某一列或者某一行上,可以極大加快處理速度。
import pandas as pd import matplotlib.pyplot as plt # 返回球員出生日期中的年份 def birth_date_deal(birth_date): year = birth_date.split("/")[2] return year data = pd.read_csv("dataset/soccer/train.csv") result = data["birth_date"].apply(birth_date_deal).head() print(result)
0 96 1 84 2 99 3 88 4 80 Name: birth_date, dtype: object
當(dāng)然如果使用lambda函數(shù)的話,代碼會(huì)更加簡(jiǎn)潔:
data = pd.read_csv("dataset/soccer/train.csv") result = data["birth_date"].apply(lambda x: x.split("/")[2]).head() print(result)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/44680.html
摘要:作者天瓊,數(shù)據(jù)游戲優(yōu)勝隊(duì)伍成員介紹本文整理記錄了參與的一次小型數(shù)據(jù)分析競(jìng)賽數(shù)據(jù)游戲,競(jìng)賽目標(biāo)是預(yù)測(cè)年月日股閉市時(shí)招商銀行的股價(jià)。日發(fā)現(xiàn)的數(shù)據(jù)有錯(cuò)誤,需要手工矯正日該數(shù)據(jù)恢復(fù)正常。而函數(shù),是對(duì)樣本外的數(shù)據(jù)進(jìn)行預(yù)測(cè)。 作者:天瓊,「數(shù)據(jù)游戲」優(yōu)勝隊(duì)伍成員 介紹 本文整理記錄了參與的一次小型數(shù)據(jù)分析競(jìng)賽「數(shù)據(jù)游戲」,競(jìng)賽目標(biāo)是預(yù)測(cè)2019年5月15日A股閉市時(shí)招商銀行600036的股價(jià)。 主...
摘要:作者天瓊,數(shù)據(jù)游戲優(yōu)勝隊(duì)伍成員介紹本文整理記錄了參與的一次小型數(shù)據(jù)分析競(jìng)賽數(shù)據(jù)游戲,競(jìng)賽目標(biāo)是預(yù)測(cè)年月日股閉市時(shí)招商銀行的股價(jià)。日發(fā)現(xiàn)的數(shù)據(jù)有錯(cuò)誤,需要手工矯正日該數(shù)據(jù)恢復(fù)正常。而函數(shù),是對(duì)樣本外的數(shù)據(jù)進(jìn)行預(yù)測(cè)。 作者:天瓊,「數(shù)據(jù)游戲」優(yōu)勝隊(duì)伍成員 介紹 本文整理記錄了參與的一次小型數(shù)據(jù)分析競(jìng)賽「數(shù)據(jù)游戲」,競(jìng)賽目標(biāo)是預(yù)測(cè)2019年5月15日A股閉市時(shí)招商銀行600036的股價(jià)。 主...
摘要:所處理的數(shù)組是方法可以對(duì)指定軸上的索引進(jìn)行改變?cè)黾觿h除操作,這將返回原始數(shù)據(jù)的一個(gè)拷貝去掉包含缺失值的行對(duì)缺失值進(jìn)行填充對(duì)數(shù)據(jù)進(jìn)行布爾填充五合并提供了大量的方法能夠輕松的對(duì)和對(duì)象進(jìn)行各種符合各種邏輯關(guān)系的合并操作。 導(dǎo)入本篇中使用到的模塊: import numpy as np import pandas as pd from pandas import Ser...
閱讀 1459·2021-09-02 13:57
閱讀 1874·2019-08-30 15:55
閱讀 2413·2019-08-30 15:54
閱讀 2250·2019-08-30 15:44
閱讀 2737·2019-08-30 13:18
閱讀 486·2019-08-30 13:02
閱讀 645·2019-08-29 18:46
閱讀 1669·2019-08-29 11:25