国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Python數據分析入門之pandas總結基礎(二)

verano / 3505人閱讀

摘要:一大熊貓世界來去自如的老生常談,從基礎來看,我們仍然關心對于與外部數據是如何交互的。函數受限制問題唯一重要的參數,標志著一個的第個頁將會被取出。數據分析入門之總結基礎一歡迎來翔的博客查看完成版。

一.大熊貓世界來去自如:Pandas的I/O

老生常談,從基礎來看,我們仍然關心pandas對于與外部數據是如何交互的。

1.1 結構化數據輸入輸出

read_csv與to_csv 是?對輸?輸出的?具,read_csv直接返回pandas.DataFrame,?to_csv只要執行命令即可寫文件

read_table:功能類似

read_fwf:操作fixed width file

read_excel與to_excel方便的與excel交互

header 表?數據中是否存在列名,如果在第0行就寫就寫0,并且開始讀數據時跳過相應的行數,不存在可以寫none

names 表示要用給定的列名來作為最終的列名

encoding 表?數據集的字符編碼,通常而言一份數據為了?便的進??件傳輸都以utf-8作為標準

這里用的是自己的一個csv數據,因為找不到參考的這個pdf中的數據。

cnames=["經度","緯度"]

taxidata2 = pd.read_csv("20140401.csv",header = 4,names=cnames,encoding="utf-8")

taxidata2

全部參數的請移步API:

http://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html#pandas.read_csv

這里介紹一些常用的參數:

讀取處理:

skiprows:跳過?定的?數

nrows:僅讀取?定的?數

skipfooter:尾部有固定的?數永不讀取

skip_blank_lines:空?跳過

內容處理:

sep/delimiter:分隔符很重要,常?的有逗號,空格和Tab(" ")

na_values:指定應該被當作na_values的數值

thousands:處理數值類型時,每千位分隔符并不統? (1.234.567,89或者1,234,567.89都可能),此時要把字符串轉化為

數字需要指明千位分隔符

收尾處理:

index_col:將真實的某列(列的數?,甚?列名)當作index

squeeze:僅讀到?列時,不再保存為pandas.DataFrame?是pandas.Series

1.2 Excel ... ?

對于存儲著極為規整數據的Excel而言,其實是沒必要一定用Excel來存,盡管Pandas也十分友好的提供了I/O接口。

taxidata.to_excel("t0401.xlsx",encoding="utf-8")

taxidata_from_excel = pd.read_excel("t0401.xlsx",header=0, encoding="utf-8")

taxidata_from_excel

注意:當你的xls文件行數很多超過65536時,就會遇到錯誤,解決辦法是將寫入的格式變為xlsx。excel函數受限制問題

唯一重要的參數:sheetname=k,標志著一個excel的第k個sheet頁將會被取出。(從0開始)

1.3 半結構化數據

JSON:網絡傳輸中常?的?種數據格式。

仔細看一下,實際上這就是我們平時收集到異源數據的風格是一致的:

列名不能完全匹配

key可能并不唯一

元數據被保存在數據里

import json

json_data = [{"name":"Wang","sal":50000,"job":"VP"},

 {"name":"Zhang","job":"Manager","report":"VP"},

 {"name":"Li","sal":5000,"report":"IT"}]

data_employee = pd.read_json(json.dumps(json_data))

data_employee_ri = data_employee.reindex(columns=["name","job","sal","report"])

data_employee_ri

輸出結果:

二. 深入Pandas數據操縱

在前面部分的基礎上,數據會有更多種操縱方式:

通過列名、行index來取數據,結合ix、iloc靈活的獲取數據的一個子集(第一部分已經介紹)

按記錄拼接(就像Union All)或者關聯(join)

方便的統計函數與?定義函數映射

排序

缺失值處理

與Excel一樣靈活的數據透視表(在第四部分更詳細介紹)

2.1 數據集整合 2.1.1 橫向拼接:直接DataFrame
pd.DataFrame([np.random.rand(2),np.random.rand(2),np.random.rand(2)],columns=["C1","C2"])
2.1.2 橫向拼接:Concatenate
pd.concat([data_employee_ri,data_employee_ri,data_employee_ri])

輸出結果

2.1.3 縱向拼接:Merge

根據數據列關聯,使用on關鍵字

可以指定一列或多列

可以使?left_on和right_on

pd.merge(data_employee_ri,data_employee_ri,on="name")

根據index關聯,可以直接使用left_index和right_index

TIPS: 增加how關鍵字,并指定

how = "inner"

how = "left"

how = "right"

how = "outer"

結合how,可以看到merge基本再現了SQL應有的功能,并保持代碼整潔

2.2 自定義函數映射
dataNumPy32 = np.asarray([("Japan","Tokyo",4000),("S.Korea","Seoul",1300),("China","Beijing",9100)])

DF32 = pd.DataFrame(dataNumPy32,columns=["nation","capital","GDP"])

DF32

2.2.1 map: 以相同規則將1列數據作1個映射,也就是進行相同函數的處理
def GDP_Factorize(v):

    fv = np.float64(v)

    if fv > 6000.0:

         return "High"

    elif fv < 2000.0:

         return "Low"

    else:

         return "Medium"



DF32["GDP_Level"] = DF32["GDP"].map(GDP_Factorize)

DF32["NATION"] = DF32.nation.map(str.upper)

DF32

2.3 排序

sort: 按?列或者多列的值進行行級排序

sort_index: 根據index?的取值進行排序,而且可以根據axis決定是重排行還是列

2.3.1 sort
dataNumPy33 = np.asarray([("Japan","Tokyo",4000),("S.Korea","Seoul",1300),("China","Beijing",9100)])

DF33 = pd.DataFrame(dataNumPy33,columns=["nation","capital","GDP"])

DF33

DF33.sort(["capital","nation"],ascending=False)

ascending是降序的意思。

2.3.2 sort_index
DF33.sort_index(axis=1,ascending=True)

2.3.3 一個好用的功能:Rank
DF33.rank()

2.4 缺失數據處理

2.4.1 忽略缺失值:
DF34.mean(skipna=True)

不忽略缺失值的話,估計就不能計算均值了吧。

如果不想忽略缺失值的話,就需要祭出fillna了:

注:這里我在猜想,axis=1是不是就代表從的角度呢?還是得多讀書查資料呀。

三. “一組”大熊貓:Pandas的groupby

groupby的功能類似SQL的group by關鍵字:

Split-Apply-Combine

Split,就是按照規則分組

Apply,通過?定的agg函數來獲得輸?pd.Series返回?個值的效果

Combine,把結果收集起來

Pandas的groupby的靈活性:

分組的關鍵字可以來?于index,也可以來?于真實的列數據

分組規則可以通過?列或者多列

沒有具體數據,截圖看一下吧,方便日后回憶。

分組可以快速實現MapReduce的邏輯

Map: 指定分組的列標簽,不同的值就會被扔到不同的分組處理

Reduce: 輸入多個值,返回1個值,一般可以通過agg實現,agg能接受1個函數

參考:

S1EP3_Pandas.pdf 不知道什么時候存到電腦里的資料,今天發現了它。感謝作者的資料。

Python數據分析入門之pandas總結基礎(一)

歡迎來Michael翔的博客查看完成版。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/37698.html

相關文章

  • 首次公開,整理12年積累的博客收藏夾,零距離展示《收藏夾吃灰》系列博客

    摘要:時間永遠都過得那么快,一晃從年注冊,到現在已經過去了年那些被我藏在收藏夾吃灰的文章,已經太多了,是時候把他們整理一下了。那是因為收藏夾太亂,橡皮擦給設置私密了,不收拾不好看呀。 ...

    Harriet666 評論0 收藏0
  • Python數據分析入門pandas總結基礎(一)

    摘要:整個序列級別的元數據信息當數據序列以及本身有了名字,就可以更方便的進行后續的數據關聯啦這里我感覺就是列名的作用。數據分析入門之總結基礎二歡迎來翔的博客查看完成版。 一. Series Series: pandas的長槍(數據表中的一列或一行,觀測向量,一維數組...) Series1 = pd.Series(np.random.randn(4)) print Series1,typ...

    alanoddsoff 評論0 收藏0
  • 【精華分享】:轉行數據分析的一份學習清單

    摘要:數據分析的發展方向一般有商業方向,行業分析業務方向,和機器學習數據挖掘方向。機器學習的書籍推薦統計學習方法,機器學習,機器學習實戰三本書。 作者:xiaoyu 微信公眾號:Python數據科學 知乎:python數據分析師 上一篇主要分享了博主親身轉行數據分析的經歷: 【從零學起到成功轉行數據分析,我是怎么做的?】 本篇繼上一篇將分享轉行數據分析的一些經驗和學習方法,看完這篇你將會解...

    suemi 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<