最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python中pandas.DataFrame的簡單操作方法(創(chuàng)建、索引、增添與刪除)

 更新時(shí)間:2017年03月12日 14:57:57   作者:赤兔DD  
這篇文章主要介紹了python中pandas.DataFrame的簡單操作方法,其中包括創(chuàng)建、索引、增添與刪除等的相關(guān)資料,文中介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。

前言

最近在網(wǎng)上搜了許多關(guān)于pandas.DataFrame的操作說明,都是一些基礎(chǔ)的操作,但是這些操作組合起來還是比較費(fèi)時(shí)間去正確操作DataFrame,花了我挺長時(shí)間去調(diào)整BUG的。我在這里做一些總結(jié),方便你我他。感興趣的朋友們一起來看看吧。

一、創(chuàng)建DataFrame的簡單操作:

1、根據(jù)字典創(chuàng)造:

In [1]: import pandas as pd
In [3]: aa={'one':[1,2,3],'two':[2,3,4],'three':[3,4,5]}
In [4]: bb=pd.DataFrame(aa)
In [5]: bb
Out[5]: 
 one three two
0 1 3 2
1 2 4 3
2 3 5 4`

字典中的keys就是DataFrame里面的columns,但是沒有index的值,所以需要自己設(shè)定,不設(shè)定默認(rèn)是從零開始計(jì)數(shù)。

bb=pd.DataFrame(aa,index=['first','second','third'])
bb
Out[7]: 
 one three two
first 1 3 2
second 2 4 3
third 3 5 4

2、從多維數(shù)組中創(chuàng)建

import numpy as np
In [9]: del aa
In [10]: aa=np.array([[1,2,3],[4,5,6],[7,8,9]])
In [11]: aa
Out[11]: 
array([[1, 2, 3],
 [4, 5, 6],
 [7, 8, 9]])
In [12]: bb=pd.DataFrame(aa)
In [13]: bb
Out[13]: 
 0 1 2
0 1 2 3
1 4 5 6
2 7 8 9

從多維數(shù)組中創(chuàng)建就需要為DataFrame賦值columns和index,否則就是默認(rèn)的,很丑的。

bb=pd.DataFrame(aa,index=[22,33,44],columns=['one','two','three'])
In [15]: bb
Out[15]: 
 one two three
22 1 2 3
33 4 5 6
44 7 8 9

3、用其他的DataFrame創(chuàng)建

bb=pd.DataFrame(aa,index=[22,33,44],columns=['one','two','three'])
bb
Out[15]: 
 one two three
22 1 2 3
33 4 5 6
44 7 8 9
cc=bb[['one','three']].copy()
Cc
Out[17]: 
 one three
22 1 3
33 4 6
44 7 9

這里的拷貝是深拷貝,改變cc中的值并不能改變bb中的值。

cc['three'][22]=5
bb
Out[19]: 
 one two three
22 1 2 3
33 4 5 6
44 7 8 9

cc
Out[20]: 
 one three
22 1 5
33 4 6
44 7 9

二、DataFrame的索引操作:

對于一個(gè)DataFrame來說,索引是最煩的,最易出錯(cuò)的。

1、索引一列或幾列,比較簡單:

bb['one']
Out[21]: 
22 1
33 4
44 7
Name: one, dtype: int32

多個(gè)列名需要將輸入的列名存在一個(gè)列表里,才是個(gè)collerable的變量,否則會報(bào)錯(cuò)。

bb[['one','three']]
Out[29]: 
 one three
22 1 3
33 4 6
44 7 9

2、索引一條記錄或幾條記錄:

bb[1:3]
Out[27]: 
 one two three
33 4 5 6
44 7 8 9
bb[:1]
Out[28]: 
 one two three
22 1 2 3

這里注意冒號是必須有的,否則是索引列的了。

3、索引某幾列的變量的某幾條記錄,這個(gè)折磨了我好久:

第一種

bb.loc[[22,33]][['one','three']]
Out[30]: 
 one three
22 1 3
33 4 6

這種不能改變這里面的值,你只是能讀值,不能寫值,可能和loc()函數(shù)有關(guān):

bb.loc[[22,33]][['one','three']]=[[2,2],[3,6]]
In [32]: bb
Out[32]: 
 one two three
22 1 2 3
33 4 5 6
44 7 8 9

第二種:也是只能看

bb[['one','three']][:2]
Out[33]: 
 one three
22 1 3
33 4 6

想要改變其中的值就會報(bào)錯(cuò)。

In [34]: bb[['one','three']][:2]=[[2,2],[2,2]]
-c:1: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_index,col_indexer] = value instead
F:\Anaconda\lib\site-packages\pandas\core\frame.py:1999: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame
 return self._setitem_slice(indexer, value)

第三種:可以改變數(shù)據(jù)的值?。?!

Iloc是按照數(shù)據(jù)的行列數(shù)來索引,不算index和columns

bb.iloc[2:3,2:3]
Out[36]: 
 three
44 9

bb.iloc[1:3,1:3]
Out[37]: 
 two three
33 5 6
44 8 9
bb.iloc[0,0]
Out[38]: 1

下面是證明:

bb.iloc[0:4,0:2]=[[9,9],[9,9],[9,9]]
In [45]: bb
Out[45]: 
 one two three
22 9 9 3
33 9 9 6
44 9 9 9

三、在原有的DataFrame上新建一個(gè)columns或幾個(gè)columns

1、什么都不用的,只能單獨(dú)創(chuàng)建一列,多列并不好使,親測無效:

bb['new']=[2,3,4]
bb
Out[51]: 
 one two three new
22 9 9 3 2
33 9 9 6 3
44 9 9 9 4
bb[['new','new2']]=[[2,3,4],[5,3,7]]
KeyError: "['new' 'new2'] not in index"

賦予的list基本就是按照所給index值順序賦值,可是一般我們是要對應(yīng)的index進(jìn)行賦值,想要更高級的賦值就看后面的了。

2、使用字典進(jìn)行多列按index賦值:

aa={33:[234,44,55],44:[657,77,77],22:[33,55,457]}
In [58]: bb=bb.join(pd.DataFrame(aa.values(),columns=['hi','hello','ok'],index=aa.keys()))
In [59]: bb
Out[59]: 
 one two three new hi hello ok
22 9 9 3 2 33 55 457
33 9 9 6 3 234 44 55
44 9 9 9 4 657 77 77

這里aa是一個(gè)字典和列表的嵌套,相當(dāng)于一條記錄,使用keys當(dāng)做index名而不是一般默認(rèn)的columns名。達(dá)到了按index多列匹配的目的。由于dict()儲存是混亂的,之間用dict()而不給他的index賦值會記錄錯(cuò)亂,這一點(diǎn)注意值得注意。

四、刪除多列或多記錄:

刪除列

bb.drop(['new','hi'],axis=1)
Out[60]: 
 one two three hello ok
22 9 9 3 55 457
33 9 9 6 44 55
44 9 9 9 77 77

刪除記錄

bb.drop([22,33],axis=0)
Out[61]: 
 one two three new hi hello ok
44 9 9 9 4 657 77 77

跟大家分享一篇關(guān)于python中pandas.DataFrame對行與列求和及添加新行與列示例,感興趣的朋友們可以看看。

DataFrame還有很多功能還沒有涉及,等以后有涉及到,看完官網(wǎng)的API之后,還會繼續(xù)分享,everything is ok。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

  • python模型集成知識點(diǎn)總結(jié)

    python模型集成知識點(diǎn)總結(jié)

    在本篇文章里小編給大家整理了一篇關(guān)于python模型集成知識點(diǎn)總結(jié),有需要的朋友們可以學(xué)習(xí)參考下。
    2021-08-08
  • 在keras里實(shí)現(xiàn)自定義上采樣層

    在keras里實(shí)現(xiàn)自定義上采樣層

    這篇文章主要介紹了在keras里實(shí)現(xiàn)自定義上采樣層,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • python在新的圖片窗口顯示圖片(圖像)的方法

    python在新的圖片窗口顯示圖片(圖像)的方法

    今天小編就為大家分享一篇python在新的圖片窗口顯示圖片(圖像)的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • 使用Python和jieba庫生成中文詞云的示例代碼

    使用Python和jieba庫生成中文詞云的示例代碼

    在文本分析和數(shù)據(jù)可視化的領(lǐng)域中,詞云是一種展示文本數(shù)據(jù)中關(guān)鍵詞頻率的直觀方式,Python作為一種強(qiáng)大的編程語言,提供了多種庫來幫助我們生成詞云,在本文中,我們將通過一個(gè)簡單的示例,展示如何使用Python生成中文詞云,需要的朋友可以參考下
    2024-07-07
  • 關(guān)于Pycharm亂碼解決大全

    關(guān)于Pycharm亂碼解決大全

    這篇文章主要介紹了關(guān)于Pycharm亂碼解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • 解決python腳本中error: unrecognized arguments: True錯(cuò)誤

    解決python腳本中error: unrecognized arguments: True錯(cuò)誤

    這篇文章主要介紹了解決python腳本中error: unrecognized arguments: True錯(cuò)誤,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • 關(guān)于pytorch中全連接神經(jīng)網(wǎng)絡(luò)搭建兩種模式詳解

    關(guān)于pytorch中全連接神經(jīng)網(wǎng)絡(luò)搭建兩種模式詳解

    今天小編就為大家分享一篇關(guān)于pytorch中全連接神經(jīng)網(wǎng)絡(luò)搭建兩種模式詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • python通過鏈接抓取網(wǎng)站詳解

    python通過鏈接抓取網(wǎng)站詳解

    在本篇文章里小編給大家整理的是關(guān)于python通過鏈接抓取網(wǎng)站的詳細(xì)方法和知識點(diǎn),需要的朋友們學(xué)習(xí)下。
    2019-11-11
  • 使用Python3 編寫簡單信用卡管理程序

    使用Python3 編寫簡單信用卡管理程序

    這篇文章主要介紹了使用Python3 編寫簡單信用卡管理程序的代碼,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧
    2016-12-12
  • Python構(gòu)建機(jī)器學(xué)習(xí)API服務(wù)的操作過程

    Python構(gòu)建機(jī)器學(xué)習(xí)API服務(wù)的操作過程

    這篇文章主要介紹了Python構(gòu)建機(jī)器學(xué)習(xí)API服務(wù)的操作過程,通過本文的指導(dǎo),讀者可以學(xué)習(xí)如何使用Python構(gòu)建機(jī)器學(xué)習(xí)模型的API服務(wù),并了解到在實(shí)際應(yīng)用中需要考慮的一些關(guān)鍵問題和解決方案,從而為自己的項(xiàng)目提供更好的支持和服務(wù),需要的朋友可以參考下
    2024-04-04

最新評論

普兰县| 灵武市| 湘乡市| 绥江县| 三江| 高阳县| 吴旗县| 九寨沟县| 瑞安市| 綦江县| 千阳县| 崇信县| 宁强县| 大足县| 平阴县| 大田县| 扶余县| 融水| 石楼县| 高陵县| 岳阳县| 营口市| 保亭| 禄丰县| 德州市| 南漳县| 武冈市| 嘉定区| 红河县| 徐州市| 清原| 汝城县| 浦城县| 甘泉县| 武安市| 梓潼县| 阜城县| 汕尾市| 元阳县| 苗栗县| 门源|