1. 程式人生 > >python pandas 資料處理

python pandas 資料處理

pandas是基於numpy包擴充套件而來的,因而numpy的絕大多數方法在pandas中都能適用。

pandas中我們要熟悉兩個資料結構Series 和DataFrame

Series是類似於陣列的物件,它有一組資料和與之相關的標籤組成。

12345 import pandas aspdobject=pd.Series(
[2,5,8,9])print(object)

結果為:

0 2
1 5
2 8
3 9
dtype: int64

結果中包含一列資料和一列標籤
我們可以用values和index分別進行引用

12 print(object.values)print(object.index)

結果為:

[2 5 8 9]
RangeIndex(start=0, stop=4, step=1)

我們還可以按照自己的意願構建標籤

123 object=pd.Series([2,5,8,9],index=['a','b','c','d'])print(object)

結果為:

a 2
b 5
c 8
d 9
dtype: int64

我們還可以對序列進行運算

1 print(object[object>5])

結果為

c 8
d 9
dtype: int64

也可以把Series看成一個字典,使用in進行判斷

1 print('a'inobject)

結果為:

True

另外,值是不能直接被索引到的

1 print(2inobject)

結果為:

False

Series中的一些方法,

isnull或者notnull可以用於判斷資料中缺失值情況

name或者index.name可以對資料進行重新命名

DataFrame資料框,也是一種資料結構,和R中的資料框類似

123456 data={'year':[2000,2001,2002,2003],'income':[3000,3500,4500,6000]}data=pd.DataFrame(data)print(data)

結果為:

income year
0 3000 2000
1 3500 2001
2 4500 2002
3 6000 2003

123 data1=pd.DataFrame(data,columns=['year','income','outcome'],   index=['a','b','c','d'])print(data1)

結果為:

year income outcome
a 2000 3000 NaN
b 2001 3500 NaN
c 2002 4500 NaN
d 2003 6000 NaN

新增加列outcome在data中沒有,則用na值代替

索引的幾種方式

12 print(data1['year'])print(data1.year)

兩種索引是等價的,都是對列進行索引,結果為:

a 2000
b 2001
c 2002
d 2003
Name: year, dtype: int64

對行進行索引,則是另外一種形式

1 print(data1.ix['a'])

結果為:

year 2000
income 3000
outcome NaN
Name: a, dtype: object

1 print(data1[1:3])

或者也可以用切片的形式

結果為:

year income outcome
b 2001 3500 NaN
c 2002 4500 NaN

增加和刪除列

1 data1['money']=np.arange(4)

增加列為money

year income outcome money
a 2000 3000 NaN 0
b 2001 3500 NaN 1
c 2002 4500 NaN 2
d 2003 6000 NaN 3

1 del data1['outcome']

刪除列結果為:

year income money
a 2000 3000 0
b 2001 3500 1
c 2002 4500 2
d 2003 6000 3

pandas中的主要索引物件以及相對應的索引方法和屬性

此外還有一個reindex函式可以重新構建索引

12345678 data={'year':[2000,2001,2002,2003],   'income':[3000,3500,4500,6000]}data1=pd.DataFrame(data,columns=['year','income','outcome'],index=['a','b','c','d'])data2=data1.reindex(['a','b','c','d','e'])print(data2)

結果為:

12 data2=data1.reindex(['a','b','c','d','e'],method='ffill')print(data2)

使用方法後的結果為:

索引刪除以及過濾等相關方法

1 print(data1.drop(['a']))

結果為:

1 print(data1[data1['year']>2001])

結果為:

1 print(data1.ix[['a','b'],['year','income']])

結果為 :

1 print(data1.ix[data1.year>2000,:2])

結果為:

詳細的索引過濾方法如下:

dataframe的演算法運算

1234567891011121314 data={'year':[2000,2001,2002,2003],'income':[3000,3500,4500,6000]}data1=pd.DataFrame(data,columns=['year','income','outcome'],index=['a','b','c','d'])data2=pd.DataFrame(data,columns=['year','income','outcome'],index=['a','b','c','d'])data1['outcome']=range(1,5)data2=data2.reindex(['a','b','c','d','e'])print(data1.add(data2,fill_value=0))

結果為:

對dataframe進行排序

1234 data=pd.DataFrame(np.arange(10).reshape((2,5)),index=['c','a'],          columns=['one','four','two','three','five'])print(data)

結果為:

1 print(data.sort_index())

結果為:

1 print(data.sort_index(axis=1))

結果為:

1 print(data.sort_values(by='one'))

結果為:

1 print(data.sort_values(by='one',ascending=False))

結果為:

這裡是對結果進行降序排列

彙總以及統計描述

1234

相關推薦

python pandas 資料處理

pandas是基於numpy包擴充套件而來的,因而numpy的絕大多數方法在pandas中都能適用。 pandas中我們要熟悉兩個資料結構Series 和DataFrame Series是類似於陣列的物件,它有一組資料和與之相關的標籤組成。 import

pythonpandas資料處理

1、numpy 純屬組,有一維二維三維陣列,但是無索引與列名,所以計算速度快 2、series 一維陣列,有標籤,(主要是用在時間序列的資料上) 3、dataframe 二維資料 表格裡橫向A B ,縱向A B 4、panel 三維資料 由items major

Python資料處理(二) | Pandas資料處理

本篇部落格所有示例使用Jupyter NoteBook演示。 Python資料處理系列筆記基於:Python資料科學手冊電子版  下載密碼:ovnh 示例程式碼  下載密碼:02f4 目錄

Python資料處理必看:12 個使效率倍增的 Pandas 技巧(上下)

http://datartisan.com/article/detail/81.html 導語 Python正迅速成為資料科學家偏愛的語言,這合情合理。它擁有作為一種程式語言廣闊的生態環境以及眾多優秀的科學計算庫。如果你剛開始學習Python,可以先了解一下Python的學習路線。 在眾多的科學計算庫中

python進行資料處理——pandas的drop函式

刪除表中的某一行或者某一列更明智的方法是使用drop,它不改變原有的df中的資料,而是返回另一個dataframe來存放刪除後的資料。本文出處主要來源於必備工具書《利用python進行資料分析》。 ———————————————————————————————

Python資料處理必看:12 個使效率倍增的 Pandas 技巧(上)

導語 Python正迅速成為資料科學家偏愛的語言,這合情合理。它擁有作為一種程式語言廣闊的生態環境以及眾多優秀的科學計算庫。如果你剛開始學習Python,可以先了解一下Python的學習路線。在眾多的科學計算庫中,我認為Pandas對資料科學運算最有用。Pandas,

[轉載]用Python資料處理必看的12 個使效率倍增的Pandas技巧

為了幫助理解,本文用一個具體的資料集進行運算和操作。本文使用了貸款預測(loan prediction) 問題資料集,下載資料集請到 http://datahack.analyticsvidhya.com/contest/practice-problem-loan-p

Python資料處理必看:12 個使效率倍增的 Pandas 技巧(下)

7 – 資料框合併 當我們有收集自不同來源的資料時,合併資料框就變得至關重要。假設對於不同的房產型別,我們有不同的房屋均價資料。讓我們定義這樣一個數據框: prop_rates = pd.DataFrame([1000, 5000, 12000], index

python常用資料處理庫的安裝(numpy pandas matplotlib)

這篇文章記錄的不錯,轉載一把https://www.cnblogs.com/lxmhhy/p/6029465.htmlpip install matplotlib -i http://pypi.douban.com/simple --trusted-host pypi.dou

Python資料處理模組Pandas

Pandas使用一個二維的資料結構DataFrame來表示表格式的資料,相比較於Numpy,Pandas可以儲存混合的資料結構,同時使用NaN來表示缺失的資料,而不用像Numpy一樣要手工處理缺失的資料,並且Pandas使用軸標籤來表示行和列 1、檔案讀取

python對於資料處理所會用到得一般操作

xlsx檔案轉為csv import pandas as pd#需要用到的包 import numpy as np#需要用到的包 path = "/home/public/GFQ/math_model/"#路徑 filepath_poi = path + "data.xlsx"#路徑+檔名 da

python json資料處理

1.  python 轉 json    import json    data={     "name":"haha",     "age" : 1,"list_1":[1,2,3],     "tu":(1,2,3),     "bo": True,     "kong":None    

python爬蟲資料處理

資料處理的兩種方式 re正則表示式:通過對資料文字進行匹配,來得到所需的資料 BeautifulSoup:通過該類建立一個物件,通過對類裡面封裝的方法進行呼叫,來提取資料。 bs4 對標籤進行查詢 獲取標籤的內容 import re fr

Python資料處理庫PySpark實戰

https://cloud.tencent.com/developer/article/1096712 Spark的安裝和使用(Python版) http://dblab.xmu.edu.cn/blog/1689-2/ https://blog.csdn.net/qq_14959801/

第3章 Pandas資料處理(3.1-3.2)_Python資料科學手冊學習筆記

第2章介紹的NumPy和它的ndarray物件. 為多維陣列提供了高效的儲存和處理方法. Pandas是在NumPy的基礎上建立的新程式庫, 提供DataFrame資料結構. DataFrame帶行標籤(索引),列標籤(變數名),支援相同資料型別和缺失值的多維陣

第3章 Pandas資料處理(3.4-3.5)_Python資料科學手冊學習筆記

3.4 Pandas 數值運算方法 對於一元運算(像函式與三角函式),這些通用函式將在輸出結果中保留索引和列標籤; 而對於二元運算(如加法和乘法), Pandas在傳遞通用函式時會自動對齊索引進行計算. 這就意味著,儲存資料內容和組合不同來源的資料—兩處在Num

第3章 Pandas資料處理(3.3)_Python資料科學手冊學習筆記

3.3 資料取值與選擇 第2章回顧: - NumPy中取值操作: arr[2,1] - 切片操作: arr[:,1:5] - 掩碼操作: arr[arr>0] - 花哨的索引操作: arr[0,[1,5]] - 組合操作: arr[:,[1:5]] 3.3

pandas資料處理實踐三(DataFrame.apply資料處理、DataFrame.drop_duplicates去重)

通過apply進行資料的預處理: DataFrame.apply(func,axis = 0,broadcast = None,raw = False,reduce = None,result_type = None,args =(),** kwds ) In [70

pandas資料處理實踐四(時間序列date_range、資料分箱cut、分組技術GroupBy)

時間序列: 關鍵函式 pandas.date_range(start = None,end = None,periods = None,freq = None,tz = None,normalize = False,name = None,closed = None,**

pandas資料處理實踐五(透視表pivot_table、分組和透視表實戰Grouper和pivot_table)

透視表: DataFrame.pivot_table(values = None,index = None,columns = None,aggfunc ='mean',fill_value = None,margin = False,dropna = True,margi