机器学习-数据科学库(第五天)
31.數據的合并和分組聚合——字符串離散化的案例
字符串離散化的案例
剛剛我們學會了數據分合并,那么接下來,我們按照電影分類(genre)信息把數據呈現出來
import numpy as np import pandas as pd from matplotlib import pyplot as plt file_path = "/Users/zhucan/Desktop/IMDB-Movie-Data.csv" df = pd.read_csv(file_path)temp_list = df["Genre"].str.split(",").tolist() genre_list = list(set([i for j in temp_list for i in j]))#構造全為0的數組 zeros_df = pd.DataFrame(np.zeros((df.shape[0],len(genre_list))),columns=genre_list) print(zeros_df)#給每個電影出現分類的位置賦值1 for i in range(df.shape[0]):zeros_df.loc[i,temp_list[i]] = 1#統計每個分類的電影的數量和 genre_count = zeros_df.sum(axis=0) print(genre_count)genre_count = genre_count.sort_values() _x = genre_count.index _y = genre_count.valuesplt.figure(figsize=(20,8),dpi=80) plt.bar(range(len(_x)),_y) plt.xticks(range(len(_x)),_x) plt.show()32.數據的合并和分組聚合——數據合并
數據合并之join
數據合并之merge?
merge:按照指定的列把數據按照一定的方式合并到一起?
默認的合并方式inner,交集?
merge outer,并集,NaN補全
merge left,左邊為準,NaN補全。merge right,右邊為準,NaN補全?
33.數據分組聚合
數據分組聚合
現在我們有一組關于全球星巴克店鋪的統計數據,如果我想知道美國的星巴克數量和中國的哪個多,或者我想知道中國每個省份星巴克的數量的情況,那么應該怎么辦?
import pandas as pd import numpy as np file_path = "/Users/zhucan/Desktop/starbucks_store_worldwide.csv" df = pd.read_csv(file_path) grouped = df.groupby(by="Country")country_count = grouped["Brand"].count() print(country_count["US"]) print(country_count["CN"]) 13608 273434.數據分組聚合02
數據分組聚合02
import pandas as pd import numpy as np file_path = "/Users/zhucan/Desktop/starbucks_store_worldwide.csv" df = pd.read_csv(file_path)china_data = df[df["Country"] == "CN"] grouped = china_data.groupby(by = "State/Province").count()["Brand"] print(grouped)分組和聚合
多條件分組?
如果我們需要對國家和省份進行分組統計,應該怎么操作呢?
grouped = df.groupby(by=[df["Country"],df["State/Province"]])
很多時候我們只希望對獲取分組之后的某一部分數據,或者說我們只希望對某幾列數據進行分組,這個時候我們應該怎么辦呢? 獲取分組之后的某一部分數據: ?
df.groupby(by=["Country","State/Province"])["Country"].count()
對某幾列數據進行分組: ?
df["Country"].groupby(by=[df["Country"],df["State/Province"]]).count()?
觀察結果,由于只選擇了一列數據,所以結果是一個Series類型 如果我想返回一個DataFrame類型呢?
df[["Country"]].groupby(by=[df["Country"],df["State/Province"]]).count()?
35.數據的索引學習
索引和復合索引
36.數據分組聚合練習和總結
Series復合索引
DataFrame復合索引
使用matplotlib呈現出店鋪總數排名前10的國家
import matplotlib.pyplot as plt import pandas as pd import numpy as np file_path ="/Users/zhucan/Desktop/starbucks_store_worldwide.csv" df = pd.read_csv(file_path)data1 = df.groupby(by="Country").count()["Brand"].sort_values(ascending=False)[:10] _x = data1.index _y = data1.valuesplt.figure(figsize=(20,8),dpi=80) plt.bar(range(len(_x)),_y) plt.xticks(range(len(_x)),_x) plt.show()使用matplotlib呈現出每個中國每個城市的店鋪數量?
import matplotlib.pyplot as plt import pandas as pd import numpy as np from matplotlib import font_manager file_path ="/Users/zhucan/Desktop/starbucks_store_worldwide.csv" my_font = font_manager.FontProperties(fname="/System/Library/Fonts/PingFang.ttc") df = pd.read_csv(file_path) df = df[df["Country"]=="CN"]data1 = df.groupby(by="City").count()["Brand"].sort_values(ascending=False)[:25]_x = data1.index _y = data1.valuesplt.figure(figsize=(20,8),dpi=80) plt.bar(range(len(_x)),_y,width=0.3,color="orange") plt.xticks(range(len(_x)),_x,fontproperties=my_font) plt.show()現在我們有全球排名靠前的10000本書的數據,那么請統計一下下面幾個問題:
總結
以上是生活随笔為你收集整理的机器学习-数据科学库(第五天)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 机器学习-数据科学库(第四天)
- 下一篇: 机器学习-数据科学库(第六天)