动手学数据分析(三)- 数据重构
生活随笔
收集整理的這篇文章主要介紹了
动手学数据分析(三)- 数据重构
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1 初心
本系列筆記用于記錄自己第一次參加Datawhale的組隊學習。自己馬上開啟研究生學習生涯,因此熟練掌握數據分析這一重要技能對未來的學習能夠提供很大的幫助,Datawhale團隊在項目初衷里說數據分析是一個要從一堆數字中看到真相的過程。學會操作數據只是數據分析的一半功力,剩下的另一半要用我們的大腦,多多思考,多多總結,更要多動手,實打實的的敲代碼。所以也希望在學習這門課時,多去推理,多去問問為什么;多多練習,確保理論實踐結合起來,在課程結束的時候一定會有大收獲。
因此希望自己再接下來的11天里面能夠實事求是、腳踏實地完成各項任務,提高自己的硬實力。
特別喜歡一句話:也許不負光陰就是最好的努力,而努力就是最好的自己。
學習內容: 在前面我們已經學習了Pandas基礎,第二章我們開始進入數據分析的業務部分,在第二章第一節的內容中,我們學習了數據的清洗,這一部分十分重要,只有數據變得相對干凈,我們之后對數據的分析才可以更有力。而這一節,我們要做的是數據重構,數據重構依舊屬于數據理解(準備)的范圍。
開始之前,導入需要的包和數據:
import numpy as np import pandas as pd text = pd.read_csv('C:\\Users\\Administrator\\Desktop\\hands-on-data-analysis-master\\第二章項目集合\\data\\train-left-up.csv') text.head()2 數據重構
2.1 數據的合并
2.1.1 將data文件夾里面的所有數據都載入,觀察數據的之間的關系
text_left_up = pd.read_csv("C:\\Users\\Administrator\\Desktop\\hands-on-data-analysis-master\\第二章項目集合\\data\\train-left-up.csv") text_left_down = pd.read_csv("C:\\Users\\Administrator\\Desktop\\hands-on-data-analysis-master\\第二章項目集合\\data\\train-left-down.csv") text_right_up = pd.read_csv("C:\\Users\\Administrator\\Desktop\\hands-on-data-analysis-master\\第二章項目集合\\data\\train-right-up.csv") text_right_down = pd.read_csv("C:\\Users\\Administrator\\Desktop\\hands-on-data-analysis-master\\第二章項目集合\\data\\train-right-down.csv") text_left_up.head() text_left_down.head() text_right_up.head() text_right_down.head()2.1.2 使用concat方法:將數據train-left-up.csv和train-right-up.csv橫向合并為一張表,并保存這張表為result_up
list_up = [text_left_up,text_right_up] result_up = pd.concat(list_up,axis=1) result_up.head()2.1.3 使用concat方法:將train-left-down和train-right-down橫向合并為一張表,并保存這張表為result_down。然后將上邊的result_up和result_down縱向合并為result。
list_down=[text_left_down,text_right_down] result_down = pd.concat(list_down,axis=1) result = pd.concat([result_up,result_down]) result.head()2.1.4 使用DataFrame自帶的方法join方法和append:完成任務二和任務三的任務
resul_up = text_left_up.join(text_right_up) result_down = text_left_down.join(text_right_down) result = result_up.append(result_down) result.head()2.1.5 使用Panads的merge方法和DataFrame的append方法:完成任務二和任務三的任務
result_up = pd.merge(text_left_up,text_right_up,left_index=True,right_index=True) result_down = pd.merge(text_left_down,text_right_down,left_index=True,right_index=True) result = resul_up.append(result_down) result.head() result.to_csv('result.csv')2.2 換一種角度數據
將數據變為Series類型的數據
text = pd.read_csv('result.csv') text.head() # 代碼寫在這里 unit_result=text.stack().head(20) unit_result.head() #將代碼保存為unit_result,csv unit_result.to_csv('unit_result.csv') test = pd.read_csv('unit_result.csv') test.head()2.3 數據的聚合與運算
2.3.1 通過《Python for Data Analysis》P303、Google or Baidu來學習了解GroupBy機制
2.3.2 計算泰坦尼克號男性與女性的平均票價
df = text['Fare'].groupby(text['Sex']) means = df.mean() means2.3.3 統計泰坦尼克號中男女的存活人數
survived_sex = text['Survived'].groupby(text['Sex']).sum() survived_sex.head()2.3.4 計算客艙不同等級的存活人數
survived_pclass = text['Survived'].groupby(text['Pclass']) survived_pclass.sum()2.3.5 統計在不同等級的票中的不同年齡的船票花費的平均值
text.groupby(['Pclass','Age'])['Fare'].mean().head()2.3.6 將任務二和任務三的數據合并,并保存到sex_fare_survived.csv
result = pd.merge(means,survived_sex,on='Sex') result result.to_csv('sex_fare_survived.csv')2.3.7 得出不同年齡的總的存活人數,然后找出存活人數的最高的年齡,最后計算存活人數最高的存活率(存活人數/總人數)
#不同年齡的存活人數 survived_age = text['Survived'].groupby(text['Age']).sum() survived_age.head()
找出最大值的年齡段
總結
以上是生活随笔為你收集整理的动手学数据分析(三)- 数据重构的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深度学习总结——思维导图
- 下一篇: 容迟网络中的路由算法笔记(二)