1. 程式人生 > >pandas的基本操作

pandas的基本操作

1、reindex重新索引

pandas提供了一個reindex方法來建立一個適應新索引的新物件,Serires通過呼叫reindex方法會根據新索引的順序重新排序,如果新的索引中存在原索引中不存在的索引,將會使用NaN值進行填充。

    obj = Series([1,2,3],index=["c","b","a"])
    obj1 = obj.reindex(["a","b","c","d"])
    print(obj1)
    '''
    a    3.0
    b    2.0
    c    1.0
    d    NaN
    '''

a、通過fill_value來指定填充值

    obj2 = obj.reindex(["a","b","c","d"],fill_value=0)
    print(obj2)
    '''
    a    3
    b    2
    c    1
    d    0
    '''

b、插值處理

ffill或pad前向填充,使用插值的前一個值來填充

    obj = Series([1,2,3],index=["a","c","e"])
    obj1 = obj.reindex(["a","b","c","d","e","f"],method="ffill")
    print(obj1)
    '''
    a    1
    b    1
    c    2
    d    2
    e    3
    f    3
    '''
method除了"ffill"和"pad"之外,還可以是"bfill"和"backfill"後向填充,當沒有前一個值或者後一個值的時候,會使用預設的NaN進行填充。

c、使用reindex對DataFrame進行、列索引重排

    #生成一個3行3列的二維陣列
    a = np.arange(9).reshape(3,3)
    frame = DataFrame(a,index=["a","b","c"],columns=["one","two","three"])
    print(frame)
    '''
        one  two  three
    a    0    1      2
    b    3    4      5
    c    6    7      8
    '''
    #重新排列行索引
    frame2 = frame.reindex(["c","b","a"])
    print(frame2)
    '''
        one  two  three
    c    6    7      8
    b    3    4      5
    a    0    1      2
    '''
    #重新排列列索引
    frame3 = frame.reindex(columns=["three","two","one"])
    print(frame3)
    '''
         three  two  one
    a      2    1    0
    b      5    4    3
    c      8    7    6
    '''
可以同時對DataFrame的行和列進行重新索引,需要注意的時候,插值只能按行應用,對列無效。

2、使用ix標籤重新索引

    frame2 = frame.ix[["c","b","a"],["three","two","one"]]
    print(frame2)
    '''
        one  two  three
    c    6    7      8
    b    3    4      5
    a    0    1      2
    '''
需要注意的是,第一個列表代表行索引,第二個代表列索引。

3、刪除指定行或列

a、Series通過索引刪除行

    a = np.arange(3)
    series = Series(a,index=["a","b","c"])
    series1 = series.drop("b")
    print(series)
    '''
    a    0
    b    1
    c    2
    '''
    print(series1)
    '''
    a    0
    c    2
    '''
可以發現,並不會在原來的Series上刪除,只是返回了一個新的Series。可以通過指定inplace為True,在原來的Series上進行刪除
    a = np.arange(3)
    series = Series(a,index=["a","b","c"])
    series.drop("b",inplace=True)
    print(series)
    '''
    a    0
    c    2
    '''

b、DataFrame刪除行和列

    a = np.arange(9).reshape(3,3)
    dataFrame = DataFrame(a,index=["a","b","c"],columns=["one","two","three"])
    #刪除行
    dataFrame1 = dataFrame.drop(["a","c"],axis=0)
    print(dataFrame1)
    '''
        one  two  three
    b    3    4      5
    '''
    #刪除列
    dataFrame2 = dataFrame.drop(["one","two"],axis=1)
    print(dataFrame2)
    '''
         three
    a      2
    b      5
    c      8
    '''
刪除行的時候,可以不指定axis=0,預設是刪除行,在刪除列的時候必須指定,不然會報ValueError: labels ['one' 'two'] not contained in axis

4、通過索引獲取指定位置的值

a、Series獲取值

    a = np.arange(3)
    series = Series(a,index=["a","b","c"])
    #通過索引獲取
    print(series[["b","c"]])
    '''
    b    1
    c    2
    '''
    #通過下標獲取
    print(series[1:3])
    '''
    b    1
    c    2
    '''
通過索引獲取值的時候,可以是單個索引或者一個索引列表,在使用下標獲取值的時候,需要注意的時候是從0開始,而且不包括右邊的下標。也可以使用["a":"c"]型別與下標來獲取值,不同的是,它包括右邊的索引。

b、DataFrame獲取值

    a = np.arange(9).reshape(3,3)
    dataFrame = DataFrame(a,index=["a","b","c"],columns=["one","two","three"])
    #獲取列的值
    print(dataFrame[["one","two"]])
    '''
        one  two
    a    0    1
    b    3    4
    c    6    7
    '''
    #獲取行的值
    print(dataFrame[0:2])
    '''
        one  two  three
    a    0    1      2
    b    3    4      5
    '''

5、索引過濾

    a = np.arange(9).reshape(3,3)
    dataFrame = DataFrame(a,index=["a","b","c"],columns=["one","two","three"])
    #選取列索引為"two"大於5的數
    print(dataFrame[dataFrame["two"] > 5])
    '''
       one  two  three
    c    6    7      8
    '''
    #選取所有大於5的數,返回一個bool型別的二維陣列
    print(dataFrame > 5)
    '''
          one    two  three
    a   False  False  False
    b   False  False  False
    c   True   True   True
    '''

DataFrame對於行的操作可以使用ix

    a = np.arange(9).reshape(3,3)
    dataFrame = DataFrame(a,index=["a","b","c"],columns=["one","two","three"])
    #選取第二行的第一列和第三列
    print(dataFrame.ix["b",["one","three"]])
    '''
     one      3
     three    5
    ''

相關推薦

pandas 基本操作

元素 概念 轉換 array list dex 增加 兩個 重要 1. 一維數據結構Series a. 概念:Series 是pandas 的一維數據結構,有重要的兩個屬性 index 和values b. 初始化: 可以通過 python 的 List 、d

pandas基本操作

pandas 其中 otl 賦值 family 留下 均值 大於 同時 一、查看數據 1.查看DataFrame前xx行或後xx行a=DataFrame(data);a.head(6)表示顯示前6行數據,若head()中不帶參數則會顯示全部數據。a.tail(6)表示顯

python pandas 基本操作

pandas 是基於 Numpy 構建的含有更高階資料結構和工具的資料分析包 類似於 Numpy 的核心是 ndarray,pandas 也是圍繞著 Series 和 DataFrame 兩個核心資料結構展開的 。Series 和 DataFrame 分別對應於一維的序列和二維的表結構。

Python資料分析庫pandas基本操作

pandas是什麼? 是它嗎? 。。。。很顯然pandas沒有這個傢伙那麼可愛。。。。 我們來看看pandas的官網是怎麼來定義自己的: pandas is an open source, easy-to-use data structures and data an

pandas基本操作函式

python pandas基本函式 檢視資料 .head() .tail() .shape .describe()

pandas庫介紹之DataFrame基本操作

讀取excel 操作 pyplot 分組 寫入 pos ner 結構 此外 怎樣刪除list中空字符? 最簡單的方法:new_list = [ x for x in li if x != ‘‘ ] 今天是5.1號。 這一部分主要學習pandas中基於前面兩種數據結構的基

pandas.DataFrame()的基本操作

感覺上pandas的DataFrame就像numpy中的矩陣,不過它擁有列名和索引名,實際操作起來會更方便一些。 import numpy as np import pandas as pd from pandas import Series, DataFrame # 使用 瀏覽器

pandas庫之DataFrame基本操作

轉自:http://www.jianshu.com/p/75f915cc5147 這一部分主要學習pandas中Series和DataFrame基本操作。

Pandas 資料框增、刪、改、查、去重、抽樣基本操作

總括 pandas的索引函式主要有三種: loc 標籤索引,行和列的名稱 iloc 整型索引(絕對位置索引),絕對意義上的幾行幾列,起始索引為0 ix 是 iloc 和 loc的合體 at是loc的快捷方式 iat是iloc的快捷方式 建立測試資料

Pandas DataFrame 的基本操作之重新索引

1.reindex:可以對行和列索引,預設對行索引,加上關鍵字columns對列索引。 import pandas as pd data=[[1,1,1,1],[2,2,2,2],[3,3,3,3],[4,4,4,4]] df = pd.DataFrame(data,ind

pandas】[2] DataFrame 基礎,建立DataFrame和增刪改查基本操作(1)

作者:lianghc 地址:http://blog.csdn.net/zutsoft         DataFrame 是pandas最常用的資料結構,類似於資料庫中的表,不過DataFrame不僅僅限制於2維,可以建立多維資料表。DataFrame既有行索引,也有列

pandas小記:pandas資料結構和基本操作

pandas的資料 結構:Series、DataFrame、索引物件 pandas基本功能:重新索引,丟棄指定軸上的項,索引、選取和過濾,算術運算和資料對齊,函式應用和對映,排序和排名,帶有重複值的軸索引 Pandas介紹 pandas含有使資料分析工作變得更快更簡單

pandas基本操作

1、reindex重新索引 pandas提供了一個reindex方法來建立一個適應新索引的新物件,Serires通過呼叫reindex方法會根據新索引的順序重新排序,如果新的索引中存在原索引中不存在的索引,將會使用NaN值進行填充。 obj = Series([1,

Python 十分鐘學會pandas基本資料操作

importIn[1]: import numpy as np In[2]: import pandas as pd In[3]: import matplotlib.pyplot as plt 建立物件通過list建立Series,pandas建立預設的整數索引In[4]: s = pd.Series

pandas一些基本操作(DataFram和Series)_4

協方差 first tac imp value 等級分 panda 二次排序 wap import numpy as np;import pandas as pd;kill_num=pd.Series([10,12,8,5,0,2,6])#擊殺數量#青銅1200-2000#

pandas一些基本操作(DataFram和Series)_2

randint isinf 向上 四舍五入 and [1] taf init base import numpy as nparr1 = np.arange(32).reshape(8,4)print(arr1)arr1 = arr1.reshape(-1);print(a

pandas一些基本操作(DataFram和Series)_3

重復值 包含 asc import afr and 對齊 是否 isn import pandas as pd;import numpy as np#通過一維數組創建Chinese = np.array([89,87,86])print(Chinese)print(pd.S

python-pandas基本資料操作

一、檢視資料(檢視物件的方法對於Series來說同樣適用) 1.檢視DataFrame前xx行或後xx行 a=DataFrame(data); a.head(6)表示顯示前6行資料,若head()中不帶引數則會顯示全部資料。 a.tail(6)表示顯示後

python之Pandas庫的基本操作

Pandas的安裝比較容易,安裝好Numpy之後,可以通過pip install pandas直接或者下載原始碼之後安裝,但是預設的Pandas還不能讀寫Excel檔案,需要安裝xlrd(讀),xlwt(寫)庫才能支援Excel的讀寫,方法如下: pip install x

pandas基本操作——如缺失值處理。等

# =====替換缺失值=== data[data.isnull()] = 0 data.fillna(0,inplace=True) #====25% 和75%=== sta = data['A_sale'].describe() #.describe(