日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python dataframe 列_python pandas库中DataFrame对行和列的操作实例讲解

發布時間:2024/7/5 python 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python dataframe 列_python pandas库中DataFrame对行和列的操作实例讲解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

用pandas中的DataFrame時選取行或列:

import numpy as np

import pandas as pd

from pandas import Sereis, DataFrame

ser = Series(np.arange(3.))

data = DataFrame(np.arange(16).reshape(4,4),index=list('abcd'),columns=list('wxyz'))

data['w'] #選擇表格中的'w'列,使用類字典屬性,返回的是Series類型

data.w #選擇表格中的'w'列,使用點屬性,返回的是Series類型

data[['w']] #選擇表格中的'w'列,返回的是DataFrame類型

data[['w','z']] #選擇表格中的'w'、'z'列

data[0:2] #返回第1行到第2行的所有行,前閉后開,包括前不包括后

data[1:2] #返回第2行,從0計,返回的是單行,通過有前后值的索引形式,

#如果采用data[1]則報錯

data.ix[1:2] #返回第2行的第三種方法,返回的是DataFrame,跟data[1:2]同

data['a':'b'] #利用index值進行切片,返回的是**前閉后閉**的DataFrame,

#即末端是包含的

data.irow(0) #取data的第一行

data.icol(0) #取data的第一列

data.head() #返回data的前幾行數據,默認為前五行,需要前十行則data.head(10)

data.tail() #返回data的后幾行數據,默認為后五行,需要后十行則data.tail(10)

ser.iget_value(0) #選取ser序列中的第一個

ser.iget_value(-1) #選取ser序列中的最后一個,這種軸索引包含索引器的series不能采用ser[-1]去獲取最后一個,這會引起歧義。

data.iloc[-1] #選取DataFrame最后一行,返回的是Series

data.iloc[-1:] #選取DataFrame最后一行,返回的是DataFrame

data.loc['a',['w','x']] #返回‘a'行'w'、'x'列,這種用于選取行索引列索引已知

data.iat[1,1] #選取第二行第二列,用于已知行、列位置的選取。

下面是簡單的例子使用驗證:

import pandas as pd

from pandas import Series, DataFrame

import numpy as np

data = DataFrame(np.arange(15).reshape(3,5),index=['one','two','three'],columns=['a','b','c','d','e'])

data

Out[7]:

a b c d e

one 0 1 2 3 4

two 5 6 7 8 9

three 10 11 12 13 14

#對列的操作方法有如下幾種

data.icol(0) #選取第一列

E:\Anaconda2\lib\site-packages\spyder\utils\ipython\start_kernel.py:1: FutureWarning: icol(i) is deprecated. Please use .iloc[:,i]

# -*- coding: utf-8 -*-

Out[35]:

one 0

two 5

three 10

Name: a, dtype: int32

data['a']

Out[8]:

one 0

two 5

three 10

Name: a, dtype: int32

data.a

Out[9]:

one 0

two 5

three 10

Name: a, dtype: int32

data[['a']]

Out[10]:

a

one 0

two 5

three 10

data.ix[:,[0,1,2]] #不知道列名只知道列的位置時

Out[13]:

a b c

one 0 1 2

two 5 6 7

three 10 11 12

data.ix[1,[0]] #選擇第2行第1列的值

Out[14]:

a 5

Name: two, dtype: int32

data.ix[[1,2],[0]] #選擇第2,3行第1列的值

Out[15]:

a

two 5

three 10

data.ix[1:3,[0,2]] #選擇第2-4行第1、3列的值

Out[17]:

a c

two 5 7

three 10 12

data.ix[1:2,2:4] #選擇第2-3行,3-5(不包括5)列的值

Out[29]:

c d

two 7 8

data.ix[data.a>5,3]

Out[30]:

three 13

Name: d, dtype: int32

data.ix[data.b>6,3:4] #選擇'b'列中大于6所在的行中的第4列,有點拗口

Out[31]:

d

three 13

data.ix[data.a>5,2:4] #選擇'a'列中大于5所在的行中的第3-5(不包括5)列

Out[32]:

c d

three 12 13

data.ix[data.a>5,[2,2,2]] #選擇'a'列中大于5所在的行中的第2列并重復3次

Out[33]:

c c c

three 12 12 12

#還可以行數或列數跟行名列名混著用

data.ix[1:3,['a','e']]

Out[24]:

a e

two 5 9

three 10 14

data.ix['one':'two',[2,1]]

Out[25]:

c b

one 2 1

two 7 6

data.ix[['one','three'],[2,2]]

Out[26]:

c c

one 2 2

three 12 12

data.ix['one':'three',['a','c']]

Out[27]:

a c

one 0 2

two 5 7

three 10 12

data.ix[['one','one'],['a','e','d','d','d']]

Out[28]:

a e d d d

one 0 4 3 3 3

one 0 4 3 3 3

#對行的操作有如下幾種:

data[1:2] #(不知道列索引時)選擇第2行,不能用data[1],可以用data.ix[1]

Out[18]:

a b c d e

two 5 6 7 8 9

data.irow(1) #選取第二行

Out[36]:

a 5

b 6

c 7

d 8

e 9

Name: two, dtype: int32

data.ix[1] #選擇第2行

Out[20]:

a 5

b 6

c 7

d 8

e 9

Name: two, dtype: int32

data['one':'two'] #當用已知的行索引時為前閉后閉區間,這點與切片稍有不同。

Out[22]:

a b c d e

one 0 1 2 3 4

two 5 6 7 8 9

data.ix[1:3] #選擇第2到4行,不包括第4行,即前閉后開區間。

Out[23]:

a b c d e

two 5 6 7 8 9

three 10 11 12 13 14

data.ix[-1:] #取DataFrame中最后一行,返回的是DataFrame類型,**注意**這種取法是有使用條件的,只有當行索引不是數字索引時才可以使用,否則可以選用`data[-1:]`--返回DataFrame類型或`data.irow(-1)`--返回Series類型

Out[11]:

a b c d e

three 10 11 12 13 14

data[-1:] #跟上面一樣,取DataFrame中最后一行,返回的是DataFrame類型

Out[12]:

a b c d e

three 10 11 12 13 14

data.ix[-1] #取DataFrame中最后一行,返回的是Series類型,這個一樣,行索引不能是數字時才可以使用

Out[13]:

a 10

b 11

c 12

d 13

e 14

Name: three, dtype: int32

data.tail(1) #返回DataFrame中的最后一行

data.head(1) #返回DataFrame中的第一行

最近處理數據時發現當pd.read_csv()數據時有時候會有讀取到未命名的列,且該列也用不到,一般是索引列被換掉后導致的,有強迫癥的看著難受,這時候dataframe.drop([columns,])是沒法處理的,怎么辦呢,

最笨的方法是直接給列索引重命名:

data6

Unnamed: 0 high symbol time

date

2016-11-01 0 3317.4 IF1611 18:10:44.8

2016-11-01 1 3317.4 IF1611 06:01:04.5

2016-11-01 2 3317.4 IF1611 07:46:25.5

2016-11-01 3 3318.4 IF1611 09:30:04.0

2016-11-01 4 3321.8 IF1611 09:31:04.0

data6.columns = list('abcd')

data6

a b c d

date

2016-11-01 0 3317.4 IF1611 18:10:44.8

2016-11-01 1 3317.4 IF1611 06:01:04.5

2016-11-01 2 3317.4 IF1611 07:46:25.5

2016-11-01 3 3318.4 IF1611 09:30:04.0

2016-11-01 4 3321.8 IF1611 09:31:04.0

重新命名后就可以用dataframe.drop([columns])來刪除了,當然不用我這樣全部給列名替換掉了,可以只是改變未命名的那個列,然后刪除。不過這個用起來總是覺得有點low,有沒有更好的方法呢,有,可以不去刪除,直接:

data7 = data6.ix[:,1:]

這樣既不改變原有數據,也達到了刪除神煩列,當然我這里時第0列刪除,可以根據實際選擇所在的列刪除之,至于這個原理,可以看下前面的對列的操作。

以上這篇python pandas庫中DataFrame對行和列的操作實例講解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的python dataframe 列_python pandas库中DataFrame对行和列的操作实例讲解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。