關(guān)于DataFrame數(shù)據(jù)的查詢和編輯
(不少于4個(gè)代碼案例,選取行,選取列,增加行,刪除行)
查詢【一般都是通過索引來操作的】
1.選取列
通過列索引標(biāo)簽或者屬性的方式可以單獨(dú)獲取DataFrame的列數(shù)據(jù),返回?cái)?shù)據(jù)類型為Series。
在選取列時(shí)不能使用切片的方式,超過一個(gè)列名用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可以隨機(jī)抽取并顯示數(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從第一行取,默認(rèn)前五行
print(df.head())
print(df.head(1))
# tail默認(rèn)最后五行 可以帶數(shù)字取最后的
print(df.tail())
print(df.tail(1))
# sample隨機(jī)抽取n行顯示
print(df.sample(1))
3.讀取行和列
切片選取行限制比較大,取單獨(dú)的幾行數(shù)據(jù)可以采用Pandas提供的iloc和loc方法實(shí)現(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ù)即可,增加列時(shí)為增加的列賦值即可創(chuàng)建一個(gè)新的列,具體給值要對(duì)應(yīng),不然會(huì)報(bào)錯(cuò)
#插入一行數(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è)置默認(rèn)為0刪除行,1刪除列。
默認(rèn)數(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'])
# 測(cè)試數(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é)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python如何通過注冊(cè)表動(dòng)態(tài)管理組件
使用注冊(cè)表的主要優(yōu)勢(shì)是可以在運(yùn)行時(shí)動(dòng)態(tài)創(chuàng)建對(duì)象,從而實(shí)現(xiàn)高度可配置和可擴(kuò)展的設(shè)計(jì),這篇文章主要介紹了python如何通過注冊(cè)表動(dòng)態(tài)管理組件,需要的朋友可以參考下2024-05-05
Python實(shí)現(xiàn)繁體轉(zhuǎn)為簡(jiǎn)體的方法示例
這篇文章主要介紹了Python實(shí)現(xiàn)繁體轉(zhuǎn)為簡(jiǎn)體的方法,涉及Python編碼轉(zhuǎn)換相關(guān)操作技巧,需要的朋友可以參考下2018-12-12
關(guān)于Qt6中QtMultimedia多媒體模塊的重大改變分析
如果您一直在 Qt 5 中使用 Qt Multimedia,則需要對(duì)您的實(shí)現(xiàn)進(jìn)行更改。這篇博文將嘗試引導(dǎo)您完成最大的變化,同時(shí)查看 API 和內(nèi)部結(jié)構(gòu)2021-09-09
python學(xué)習(xí)基礎(chǔ)之循環(huán)import及import過程
python中的import語句是用來導(dǎo)入模塊的,下面這篇文章主要給大家介紹了關(guān)于python學(xué)習(xí)基礎(chǔ)之循環(huán)import及import過程的相關(guān)資料,需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2018-04-04
利用Matplotlib實(shí)現(xiàn)單畫布繪制多個(gè)子圖
這篇文章主要介紹了利用Matplotlib實(shí)現(xiàn)單畫布繪制多個(gè)子圖,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02
Python腳本實(shí)現(xiàn)一鍵執(zhí)行MySQL與達(dá)夢(mèng)數(shù)據(jù)庫的SQL
這篇文章主要為大家詳細(xì)介紹了如何使用Python 腳本 + PyInstaller 打包成可執(zhí)行文件,一鍵搞定 MySQL 和達(dá)夢(mèng)(DM)數(shù)據(jù)庫的 SQL 執(zhí)行,希望對(duì)大家有所幫助2025-08-08
Python圖像處理庫PIL的ImageEnhance模塊使用介紹
這篇文章主要介紹了Python圖像處理庫PIL的ImageEnhance模塊使用介紹,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02

