關于DataFrame數據的查詢和編輯
(不少于4個代碼案例,選取行,選取列,增加行,刪除行)
查詢【一般都是通過索引來操作的】
1.選取列
通過列索引標簽或者屬性的方式可以單獨獲取DataFrame的列數據,返回數據類型為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("以列名取一列數據:\n", w1)
w2 = df[['name','age']]
print("以列名取兩份數據:\n", w2)

2.選取行
通過行索引或者行索引位置切片形式獲取行數據【從0開始的,左閉右開】。
DataFrame提供的head【開頭開始】和tail【結尾】可以取連續(xù)多行數據,sample可以隨機抽取并顯示數據
# 取行 從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默認最后五行 可以帶數字取最后的
print(df.tail())
print(df.tail(1))
# sample隨機抽取n行顯示
print(df.sample(1))
3.讀取行和列
切片選取行限制比較大,取單獨的幾行數據可以采用Pandas提供的iloc和loc方法實現。
用法:
- 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兩列的數據:\n",df2.loc[:,['name','year']])
print("取漢,戰(zhàn)國行中name,year的數據:\n",df2.loc[['漢','戰(zhàn)國'],['name','year']])

4.增加數據
增加一行通過append方法傳入字典結構數據即可,增加列時為增加的列賦值即可創(chuàng)建一個新的列,具體給值要對應,不然會報錯
#插入一行數據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.刪除行和列
刪除數據直接用drop方法,行列數據通過axis參數設置默認為0刪除行,1刪除列。
默認數據刪除不修改原數據,如果在原數據上刪除加入參數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'])
# 測試數據。
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)
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
關于Qt6中QtMultimedia多媒體模塊的重大改變分析
如果您一直在 Qt 5 中使用 Qt Multimedia,則需要對您的實現進行更改。這篇博文將嘗試引導您完成最大的變化,同時查看 API 和內部結構2021-09-09
python學習基礎之循環(huán)import及import過程
python中的import語句是用來導入模塊的,下面這篇文章主要給大家介紹了關于python學習基礎之循環(huán)import及import過程的相關資料,需要的朋友可以參考借鑒,下面隨著小編來一起學習學習吧。2018-04-04
Python腳本實現一鍵執(zhí)行MySQL與達夢數據庫的SQL
這篇文章主要為大家詳細介紹了如何使用Python 腳本 + PyInstaller 打包成可執(zhí)行文件,一鍵搞定 MySQL 和達夢(DM)數據庫的 SQL 執(zhí)行,希望對大家有所幫助2025-08-08
Python圖像處理庫PIL的ImageEnhance模塊使用介紹
這篇文章主要介紹了Python圖像處理庫PIL的ImageEnhance模塊使用介紹,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-02-02

