關(guān)于DataFrame數(shù)據(jù)的查詢和編輯
(不少于4個代碼案例,選取行,選取列,增加行,刪除行)
查詢【一般都是通過索引來操作的】
1.選取列
通過列索引標簽或者屬性的方式可以單獨獲取DataFrame的列數(shù)據(jù),返回數(shù)據(jù)類型為Series。
在選取列時不能使用切片的方式,超過一個列名用df[['列名1','列名2']]
# 選取列 import pandas as pd import numpy as np data = { 'name':[楊大潤','李玉芳','馬慶顯'], 'age':[21,19,23], 'address':['蘭州','上海','北京'] } df = pd.DataFrame(data) print(df) w1 = df['name'] print("以列名取一列數(shù)據(jù):\n", w1) w2 = df[['name','age']] print("以列名取兩份數(shù)據(jù):\n", w2)
2.選取行
通過行索引或者行索引位置切片形式獲取行數(shù)據(jù)【從0開始的,左閉右開】。
DataFrame提供的head【開頭開始】和tail【結(jié)尾】可以取連續(xù)多行數(shù)據(jù),sample可以隨機抽取并顯示數(shù)據(jù)
# 取行 從0開始的 import pandas as pd data = { 'name':['楊大潤','李玉芳','馬慶顯'], 'age':[21,19,23], 'address':['貴州','上海','北京'] } df = pd.DataFrame(data) print(df) print('顯示前兩行:\n', df[:2]) print('顯示2行:\n', df[1:2]) # head從第一行取,默認前五行 print(df.head()) print(df.head(1)) # tail默認最后五行 可以帶數(shù)字取最后的 print(df.tail()) print(df.tail(1)) # sample隨機抽取n行顯示 print(df.sample(1))
3.讀取行和列
切片選取行限制比較大,取單獨的幾行數(shù)據(jù)可以采用Pandas提供的iloc和loc方法實現(xiàn)。
用法:
- DataFrame.loc(行索引位置, 列索引位置)
- ? DataFrame.loc(行索引名稱或條件, 列索引名稱)
# loc import pandas as pd import numpy as np data = { 'name':['楊將軍(大潤)', '李女將(玉芳)', '馬(軍師)慶顯', '韋女將(思妍)', '徐大將(佳宇)'], 'location':['游走', '下路', '打野', '中單', '上單'], 'dynasty':['蜀', '蜀', '戰(zhàn)國', '漢', '蜀'], 'year':[1999, 2000, 2020, 2050, 3030] } df1 = pd.DataFrame(data, columns=['name','location','dynasty','address','year'],index=['a','b','c','d','e']) df2 = df1.set_index('dynasty') print(df2) print("取name和year兩列的數(shù)據(jù):\n",df2.loc[:,['name','year']]) print("取漢,戰(zhàn)國行中name,year的數(shù)據(jù):\n",df2.loc[['漢','戰(zhàn)國'],['name','year']])
4.增加數(shù)據(jù)
增加一行通過append方法傳入字典結(jié)構(gòu)數(shù)據(jù)即可,增加列時為增加的列賦值即可創(chuàng)建一個新的列,具體給值要對應,不然會報錯
#插入一行數(shù)據(jù)append #加列并賦值 import pandas as pd import numpy as np data = { 'name':['楊將軍(大潤)', '李女將(玉芳)', '馬(軍師)慶顯', '韋女將(思妍)', '徐大將(佳宇)'], 'location':['游走', '下路', '打野', '中單', '上單'], 'dynasty':['蜀', '蜀', '戰(zhàn)國', '漢', '蜀'], 'year':[1999, 2000, 2020, 2050, 3030] } df1 = pd.DataFrame(data, columns=['name','location','dynasty','address','year'],index=['0','1','2','3','4']) df1['C'] = 10 df1['age'] = [24,33,19,40,80] data1 = { 'name':'吳醫(yī)師(宗蔚)', 'location':'打野', 'dynasty':'唐', 'year':1909 } df1.append(data1,ignore_index=True) print(df1) print(df1.append(data1,ignore_index=True))
5.刪除行和列
刪除數(shù)據(jù)直接用drop方法,行列數(shù)據(jù)通過axis參數(shù)設(shè)置默認為0刪除行,1刪除列。
默認數(shù)據(jù)刪除不修改原數(shù)據(jù),如果在原數(shù)據(jù)上刪除加入?yún)?shù)inplace=True即可!
import numpy as np import pandas as pd df = pd.DataFrame(data=[['楊大潤', '男', 22], ['李玉芳', '女', 18], ['韋思妍', '女', 18], ['馬慶顯', '男', 23], ['徐佳宇', '女', 18], ['吳宗蔚', '女', 21]], index=[1, 2, 3, 4, 5, 6], columns=['name', 'sex', 'age']) # 測試數(shù)據(jù)。 print(df) h=df.drop([1,3],axis = 0,inplace = False) #刪除index值為1和3的兩行, print(h) l=df.drop(['name'],axis = 1,inplace = False) #刪除name列。 print(l)
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
VSCode設(shè)置類似Pycharm控制臺運行Python顯示中間變量的步驟
這篇文章主要介紹了如何在VSCode中設(shè)置調(diào)試功能,以實現(xiàn)類似于Pycharm在控制臺輸出中間變量的功能,文中通過圖文介紹的非常詳細,需要的朋友可以參考下2025-03-03python批量將PDF文件轉(zhuǎn)換成圖片的實現(xiàn)代碼
這篇文章使用python編寫了一個小腳本,目的是為了實現(xiàn)批量將PDF文件轉(zhuǎn)換成圖片,文中有詳細的實現(xiàn)代碼,對我們的學習或工作有一定的幫助,感興趣的小伙伴可以參考閱讀一下2023-08-08Python實現(xiàn)發(fā)送email的幾種常用方法
這篇文章主要介紹了Python實現(xiàn)發(fā)送email的幾種常用方法,非常實用,需要的朋友可以參考下2014-08-08使用Selenium實現(xiàn)微博爬蟲(預登錄、展開全文、翻頁)
這篇文章主要介紹了使用Selenium實現(xiàn)微博爬蟲(預登錄、展開全文、翻頁),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-04-04查看已經(jīng)安裝的python版本和相關(guān)路徑信息的三種方法
Python是一門計算機程序編程語言,更是一種面向?qū)ο蟮膭討B(tài)類型語言,隨著版本的不斷更新和語言新功能的添加,越來越多被用于獨立的、大型項目的開發(fā),那么如何查看已安裝Python版本和路徑呢?我們通過這篇文章來了解一下2025-03-03python文件操作相關(guān)知識點總結(jié)整理
這篇文章主要介紹了python文件操作相關(guān)知識點,整理匯總了Python文件操作所涉及的常見函數(shù)與方法,并給出了實例代碼予以總結(jié)歸納,需要的朋友可以參考下2016-02-02TensorFlow實現(xiàn)簡單卷積神經(jīng)網(wǎng)絡(luò)
這篇文章主要為大家詳細介紹了TensorFlow實現(xiàn)簡單卷積神經(jīng)網(wǎng)絡(luò),具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-05-05