python中pandas庫學習筆記
#python中的pandas庫主要有DataFrame和Series類(面向物件的的語言更願意叫類) DataFrame也就是 #資料框(主要是借鑑R裡面的data.frame),Series也就是序列 ,pandas底層是c寫的 效能很棒,有大神 #做過測試 處理億級別的資料沒問題,起效能可以跟同等配置的sas媲美 #DataFrame索引 df.loc是標籤選取操作,df.iloc是位置切片操作 print(df[['row_names','Rape']]) df['行標籤'] df.loc[行標籤,列標籤] print(df.loc[0:2,['Rape','Murder']]) df.iloc[行位置,列位置] df.iloc[1,1]#選取第二行,第二列的值,返回的為單個值 df.iloc[0,2],:]#選取第一行及第三行的資料 df.iloc[0:2,:]#選取第一行到第三行(不包含)的資料 df.iloc[:,1]#選取所有記錄的第一列的值,返回的為一個Series df.iloc[1,:]#選取第一行資料,返回的為一個Series print(df.ix[1,1]) # 更廣義的切片方式是使用.ix,它自動根據你給到的索引型別判斷是使用位置還是標籤進行切片 print(df.ix[0:2]) #DataFrame根據條件選取子集 類似於sas裡面if、where ,R裡面的subset之類的函式 df[df.Murder>13] df[(df.Murder>10)&(df.Rape>30)] df[df.sex==u'男'] #重新命名 相當於sas裡面的rename R軟體中reshape包的中的rename df.rename(columns={'A':'A_rename'}) df.rename(index={1:'other'}) #刪除列 相當於sas中的drop R軟體中的test['col']<-null df.drop(['a','b'],axis=1) or del df[['a','b']] #排序 相當於sas裡面的sort R軟體裡面的df[order(x),] df.sort(columns='C') #行排序 y軸上 df.sort(axis=1) #各個列之間位置排序 x軸上 #資料描述 相當於sas中proc menas R軟體裡面的summary df.describe() #生成新的一列 跟R裡面有點類似 df['new_columns']=df['columns'] df.insert(1,'new_columns',df['B']) #效率最高 df.join(Series(df['columns'],name='new_columns')) #列上面的追加 相當於sas中的append R裡面cbind() df.append(df1,ignore_index=True) pd.concat([df,df1],ignore_index=True) #最經典的join 跟sas和R裡面的merge類似 跟sql裡面的各種join對照 merge() #刪除重行 跟sas裡面nodukey R裡面的which(!duplicated(df[])類似 df.drop_duplicated() #獲取最大值 最小值的位置 有點類似矩陣裡面的方法 df.idxmin(axis=0 ) df.idxmax(axis=1) 0和1有什麼不同 自己摸索去 #讀取外部資料跟sas的proc import R裡面的read.csv等類似 read_excel() read_csv() read_hdf5() 等 與之相反的是df.to_excel() df.to_ecv() #缺失值處理 個人覺得pandas中缺失值處理比sas和R方便多了 df.fillna(9999) #用9999填充 #連結資料庫 不多說 pandas裡面主要用 MySQLdb import MySQLdb conn=MySQLdb.connect(host="localhost",user="root",passwd="",db="mysql",use_unicode=True,charset="utf8") read_sql() #很經典 #寫資料進資料庫 df.to_sql('hbase_visit',con, flavor="mysql", if_exists='replace', index=False) #groupby 跟sas裡面的中的by R軟體中dplyr包中的group_by sql裡面的group by功能是一樣的 這裡不多說 #求啞變數 dumiper=pd.get_dummies(df['key']) df['key'].join(dumpier) #透視表 和交叉表 跟sas裡面的proc freq步類似 R裡面的aggrate和cast函式類似 pd.pivot_table() pd.crosstab() #聚合函式經常跟group by一起組合用 df.groupby('sex').agg({'height':['mean','sum'],'weight':['count','min']}) #資料查詢過濾 test.query("0.2 將STK_ID中的值過濾出來 stk_list = ['600809','600141','600329']中的全部記錄過濾出來,命令是:rpt[rpt['STK_ID'].isin(stk_list)]. 將dataframe中,某列進行清洗的命令 刪除換行符:misc['product_desc'] = misc['product_desc'].str.replace('\n', '') 刪除字串前後空格:df["Make"] = df["Make"].map(str.strip) 如果用模糊匹配的話,命令是: rpt[rpt['STK_ID'].str.contains(r'^600[0-9]{3}$')] 對dataframe中元素,進行型別轉換 df['2nd'] = df['2nd'].str.replace(',','').astype(int) df['CTR'] = df['CTR'].str.replace('%','').astype(np.float64) #時間變換 主要依賴於datemie 和time兩個包 http://www.2cto.com/kf/201401/276088.html #其他的一些技巧 df2[df2['A'].map(lambda x:x.startswith('61'))] #篩選出以61開頭的資料 df2["Author"].str.replace("<.+>", "").head() #replace("<.+>", "")表示將字串中以”<”開頭;以”>”結束的任意子串替換為空字串 commits = df2["Name"].head(15) print commits.unique(), len(commits.unique()) #獲的NAME的不同個數,類似於sql裡面count(distinct name) #pandas中最核心 最經典的函式apply map applymap #這三個函式是pandas裡面資料變換的核心 避免了for迴圈,跟R裡面的apply函式類似 #主要用法不清楚可以問我 pd.concat([df1,df2],axis=1) 橫向合併 ,沒有axis=1 則縱向合併 上面有不懂得、或者我寫錯的、或者侵權的、或願意交流的請加(714947298)
相關推薦
python中pandas庫學習筆記
現在回想學pandas很意外,記得五月份的時候剛剛跑到現在的公司實習,那個時候公司沒發電腦,當時天天去那就看書(自己的電腦被朋友拿走了),就這樣看了半個月的pandas,後來也就慢慢用上了,下面是pa
python中strip()方法學習筆記
bbb 方法學 python pytho ring strip strip() clas ng2 Python strip() 方法用於移除字符串頭尾指定的字符(默認為空格)。 當使用strip(‘xxx‘),只要字符串頭尾有"xxx"中的一個,就會去掉,而不是符合字符串‘
python中類的學習筆記(源碼版)
類的使用1.1第一段代碼 #定義一個類(define a class ) class Cat: #屬性(attribution) #方法(methods) def eat(self): print("cat is eating
python中pandas庫中DataFrame對行和列的操作使用方法
用pandas中的DataFrame時選取行或列:import numpy as np import pandas as pd from pandas import Sereis, DataFrame ser = Series(np.arange(3.)) data =
python庫學習筆記——分組計算利器:pandas中的groupby技術
最近處理資料需要分組計算,又用到了groupby函式,溫故而知新。 分組運算的第一階段,pandas 物件(無論是 Series、DataFrame 還是其他的)中的資料會根據你
python pandas 庫學習使用筆記
Series資料型別 Series is a one-dimensional labeled array capable of holding any data type (integers, strings, floating
python requests庫學習筆記(下)
mail 接收 緩存 nbsp 0.10 基本 eat agen 維基百科 1.請求異常處理 請求異常類型: 請求超時處理(timeout): 實現代碼: import requestsfrom requests import exceptions #引
python庫學習筆記(threading庫)
condition pre ctime IT 程序 rlock HR mov 實例 import threading threading模塊裏提供的類。 1. Thread:表示一個線程的執行的對象。 2. Lock:鎖原語對象 3. Rlock:可重入鎖
python基礎教程_學習筆記18:標準庫:一些最愛——shelve
變量綁定 工作 關閉 mes 名稱 tis 標準 times data- 版權聲明:本文為博主原創文章,未經博主同意不得轉載。 https://blog.csdn.net/signjing/article/details/3602998
Python中numpy庫和pandas庫的基本用法
使用前先安裝兩個庫:python3 -m pip install numpy pandas 注意因為我把我自己的python.exe命令成了python3.exe(因為系統裡有多個版本的python存在),所以上面的命令裡用的是python3。 numpy庫: NumP
python中time庫的學習日記
版權宣告 本篇內容為自己的學習內容,僅做日記記錄以便日後複習使用。並非本人原創。 time.sleep延時函式 sleep函式可以實現程式的延時,可控制期望時延後執行下一條語句。 import time time.sleep(10) # 延時 10s, t
python基礎教程_學習筆記16:標準庫:一些最愛——random
標準庫:一些最愛 random random模組包括返回隨機數的函式,可以用於模擬或者用於任何產生隨機輸出的程式。 事實上,所產生的數字都是偽隨機數,它們以一個可預測的系統作為基礎,除非是為了強加密的目標,否則這些隨機數還是足夠隨機的。如果真的需要隨機性,可以使用os模組的
利用python進行資料分析學習筆記-Pandas篇
無論如何,堅持啊! pandas的資料結構 Series obj = Series([]) #產生一個Series obj = Series({})#可以通過引入一個dict來建立一個Series 包括values和index兩個屬性,而valu
python-urllib庫學習筆記
import urllib.request, urllib.parse ''' urllib常用的請求語句 ''' url = '' # 傳送請求 res = urllib.request.urlopen(url=url) # 讀取請求到的內容 res.read().de
python下pandas庫的學習
Python中的pandas模組進行資料分析。 接下來pandas介紹中將學習到如下8塊內容: 1、資料結構簡介:DataFrame和Series 2、資料索引index 3、利用pandas查詢資料 4、利用pandas的DataFrames進行統計分析 5、利用pan
Andorid中使用Jsoup解析庫解析XML、HTML、Dom節點---第三方庫學習筆記(三)
XML介紹: XML簡介: XML,可擴充套件標記語言,標準通用標記語言的子集。 一種用於標記電子檔案使其具有結構性的標記語言。 它可以用來標記資料、定義資料型別 是一種允許使用者對自己的標記語言進行定義的源語言。 非常適合全球資訊網傳輸 提供統一方法描述
python框架之 Tornado 學習筆記(一)
tornado pythontornado 一個簡單的服務器的例子:首先,我們需要安裝 tornado ,安裝比較簡單: pip install tornado 測試安裝是否成功,可以打開python 終端,輸入: import tornado.https
數據庫學習筆記_10_函數依賴詳解——函數依賴公理及其推得規律和屬性閉包
一個 說明 tro ans while 比較 接下來 子集 and 首先引入armstrong‘s axioms, 反射律(reflexivity rule)對於任何為LA(a)子集的LA(b)來說,LA(a)->LA(b)恒成立 增加律(argu
數據庫學習筆記13_decomposition of bcnf ultimate version
version 處理 osi 哪裏 最大 color 方法 分表 不為 話說這本書也是夠奇怪的,前面義正詞嚴的講了一個decomposition method of BCNF然後後面又說這個方法並不充分……嘛,開講。 根據筆記10的內容,再拆分一個非BCNF的數據表
Python_sklearn機器學習庫學習筆記(四)decision_tree(決策樹)
min n) 空間 strong output epo from 標簽 ict # 決策樹 import pandas as pd from sklearn.tree import DecisionTreeClassifier from sklearn.