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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Pandas的学习(3.DataFrame的创建方法和三种索引方法(iloc、loc、values)以及切片)

發布時間:2024/9/30 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Pandas的学习(3.DataFrame的创建方法和三种索引方法(iloc、loc、values)以及切片) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

DataFrame

? ?DataFrame是一個【表格型】的數據結構,可以看做是【由Series組成的字典】共用同一個索引)。DataFrame由按一定順序排列的多列數據組成,設計初衷是將Series的使用場景從一維拓展到多維DataFrame既有行索引,也有列索引、

? --- 行索引:? index

?--- 列索引: columns

--- 值:? values(numpy的二維數組)

?DataFrame的創建

? 1.? ?最常用的方法是傳遞一個字典來創建。

? ? ?DataFrame以字典的鍵作為每一【列】的名稱,以字典的值(一個數組)作為每一列。
? ? ?此外,DataFrame會自動加上每一行的索引(和Series一樣)。
? ? 同Series一樣,若傳入的列與字典的鍵不匹配,則相應的值為NaN。

from pandas import DataFrame import numpy as np'''通過字典進行創建''' dic = {"height": [175, 180, 169, 177],"age": np.random.randint(18, 25, size=4),"sex": ['女', '男', '女', '男'] } """DataFrame(data=None, index=None, columns=None, dtype=None,copy=False)參數解釋: data: 為創建數據的字典 index : 不賦值的時,行索引就是從0開始的整數賦值給一個列表,列表的元素即為行索引columns : 不賦值時,列名就是字典中鍵賦值給一個列表,列名就是列表中的元素,如果元素比字典的鍵多的話,這一列的就為NaN""" # columns中如果元素比字典的鍵多的話,這一列的就為NaN df = DataFrame(dic, index=list('ABCD'), columns=['height', 'age', 'sex', 'weight']) print(df) """height age sex weight A 175 18 女 NaN B 180 20 男 NaN C 169 19 女 NaN D 177 23 男 NaN """

2. 打印DataFrame的形狀? ?.shape

# 打印DataFrame的形狀 print(df.shape) """ (4, 4) """

3.給DataFramed的行索引重新賦值? .index

# 重新給DataFrame的行索引賦值 df.index = [1, 2, 3, 4] print(df) """height age sex weight 1 175 22 女 NaN 2 180 23 男 NaN 3 169 22 女 NaN 4 177 21 男 NaN """

4. 修改DataFrame的列名(給DataFrame的列名重新賦值)

# 修改DataFrame的列名 df.columns = [0, 2, 4, 6] print(df) """0 2 4 6 1 175 24 女 NaN 2 180 23 男 NaN 3 169 21 女 NaN 4 177 22 男 NaN """

?

?DataFrame的索引

1.對列進行索引

? ? ?- 通過類似字典的方式

? ? ? - 通過屬性的方式

? 可以將DataFrame的列獲取為一個Series。返回的Series擁有原DataFrame相同的索引,且name屬性也已經設置好了,就是相應的列名。

# 通過字典的形式進行檢索 【檢索列返回值,是Series類型】 print(df['age']) """ A 20 B 20 C 18 D 22 Name: age, dtype: int3 """ # 通過屬性的方式進行檢索 # 對于DataFrame而言,列名就相當于屬性 # DataFrame 是統計數據時,用的表格,某一個事物屬性,每一個屬性對應的DataFran中的列名 print(df.age) """ A 21 B 22 C 18 D 21 Name: age, dtype: int32 """

2.對行進行索引
? ? -- 使用.ix[]來進行行索引? ?(過時)
? ? -- 使用.loc[]加index來進行行索引

? ? -- 使用.iloc[]加整數來進行行索引

? ? ?同樣返回一個Series,index為原來的

# 行索引 '''顯示索引''' # 對于行的檢索,返回值也為Series print(df.loc['A']) """ Name: age, dtype: int32 height 175 age 19 sex 女 weight 55 Name: A, dtype: object """# 中括號括起來,代表的是條件, 即檢索多行,返回的數據就是DataFrame print(df.loc[['A', 'B']]) """height age sex weight A 175 24 女 55 B 180 21 男 78 """'''對于切片而言沒有列切片(因為列是屬性 ) ''' # 可以進行切片索引,左閉右閉 print(df.loc['A':'C']) """height age sex weight A 175 21 女 55 B 180 20 男 78 C 169 19 女 71 """'''隱式索引(左閉右開)''' # DataFrame自身有Bug,索引是漢字,有時無法檢索結果 print(df.iloc[1:3]) """height age sex weight B 180 18 男 78 C 169 19 女 71 """

3.對元素索引的方法? (查詢到具體的數據)

? -- 使用列索引

? -- 使用行索引? ?(iloc[3,1]) 相當于兩個參數; iloc[[3,3]] 里面的[3,3] 看做一個參數

? -- 使用values屬性 (二維numpy數組)?

'''對元素進行索引''' # 查詢到具體額數據 # 找到 列名為sex的,行索引為B的數據 print(df['sex']['B']) # 男 # 可以直接修改具體的值 (再進行修改值的時候,會拋出一個警告,讓我們去copy一份, # 根據具體的情況可以忽略,程序是可以正常執行的) df['sex']['B'] = '女博士' print(df) """height age sex weight A 175 22 女 55 B 180 20 女博士 78 C 169 18 女 71 D 177 23 男 98 """'''使用loc取出具體的元素''' # 檢索行的時候,參數可以多個,但是列,無法完成這樣的操作 print(df.loc['C']['height']) # 169 print(df.loc['C', 'height']) # 169'''可以使用values取出某個數據''' # 使用values取出第一行的第三個(從0開始,左閉右閉) print(df.values[0,2]) # 55

【注意】 直接用中括號時:
? ? ? ? ? ? ?---索引表示的是列索引
? ? ? ? ? ? ?----切片表示的是行切片

總結

以上是生活随笔為你收集整理的Pandas的学习(3.DataFrame的创建方法和三种索引方法(iloc、loc、values)以及切片)的全部內容,希望文章能夠幫你解決所遇到的問題。

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