pandas隨筆

主要操作兩個對象:一維帶標簽數組?和?二維表格DataFrame

一維帶標簽數組Series

pd.Series([1, 3, 5, np.nan, 6, 8])? ,結果如下:

?可指定索引,pd.Series([1, 3, 5], index=['a', 'b', 'c']) ?

二維表格DataFrame

創建時需要指定列名,如

字典創建

data = {'姓名': ['Alice', 'Bob', 'Charlie'],'年齡': [25, 30, 35],'評分': [85.5, 90.0, 88.5]
}
df = pd.DataFrame(data)

列表創建

列表不像字典,需額外指定列名

data = [['Alice', 25, 85.5],['Bob', 30, 90.0],['Charlie', 35, 88.5]
]
columns = ['姓名', '年齡', '評分']
df = pd.DataFrame(data, columns=columns,index=[索引內容])

?index:指定行索引,為一個列表類型,長度要匹配,可以省去。默認行索引為0,1,2......

上面兩種方式結果都如下

表格數據統計

head(n)? ? ? ? ? ? ? ? 查看前n行數據

tail(n)? ? ? ? ? ? ? ?查看后n行數據

shape? ? ? ? ? ? ? ? ? 查看行數、列數

cloumns? ? ? ? ? ? ? ?查看列名

describe()? ? ? ? 統計摘要(計數、均值、標準差等)

info()? ? ? ? ? ? ? ? 查看基本信息

corr()? ? ? ? ? ? ? ? 列與列的相關系數

簡單可視化實現(用到pyplot)

將表中的單獨一行,或單獨一列數據拿出來繪制圖表

df['?列名?'].plot()? ? ? ? ? ? ? ? ? #找出某行數據,以行為x軸

df.loc[' 行索引 '].plot? ? ? ? ? ?#找出某行數據,以列為x軸

最后plt.show()即可

表格數據篩選與過濾?

索引查找

按列名索引? ? ? ? ? ? ? ? df [ '年齡' ]

按位置索引(整數)? ?? ?df.iloc [ '0' ] #第一行???????df.iloc [ 1:3,0:2?]? #第2-3行,第1-2列(左閉右開)

按標簽索引????????????????df.loc [df['年齡'] > 30] ? ? ? ? ?# 篩選年齡>30的行

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? df.loc [ :, ['姓名', '評分']] ? ? ?# 選取指定列?

按指定位置索引? ? ? ? ?df.loc ['行索引', ['A', 'B']]? ? ? #指定行+列,若表數據未指定行索引,? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #默認按?0,1,2.....來

?篩選查找

年齡>30且評分>88的

filtered = df[(df['年齡'] > 30) & (df['評分'] > 88)]

上面方法查找到的數據,定位到之后可直接進行賦值修改

唯一值與去重

unique_names = df['姓名'].unique() # 列中唯一值

df.drop_duplicates(subset=['姓名']) # 按列去重

sort_values(by= '評分' ,ascending=False)? ? ? ? ? ? ? ? ?按評分降序排列,為True時升序

數據清洗

查找無效值,并填充NaN

isnull()? ? ? ? 顯示無效值信息

fillna(value=0, inplace=True)? ? ? 填充缺失值,inplace=False時默認填充NAN,也可以value='NaN'

刪除缺失信息的行

dropna(subset=[ '評分' ])

依次檢測subset中的列?,將每列中有NaN值存在的所在行進行刪除

一般要先進行數據清洗,將表中的空值和None值 轉換為NaN,dropna只針對NaN值進行刪除

?drop(columns=['年齡差值'], inplace=True)? ? ? ? ? ?刪除整列

df[ '年齡' ].astype( 'int' )? ? ? ? 轉換為整數類型

df.[ '評分' ].round(1)? ? ? ? ? ? ? 保留1位小數

df['年齡差值'] = df['年齡'] - df['年齡'].min()????????????????新增列(基于現有列計算)

分組

groupby( '年齡' )? ? ? ? ? ? ? ? 按年齡進行分組

df.groupby('年齡')['評分'].mean()    #在年齡這一組,計算評分的平均值

?groupby( '年齡' ).agg? ? ? ? ? ? ? ? 按年齡這一組,進行多列分組聚合

df.groupby('年齡').agg({'評分': 'mean','姓名': 'count'
})

?表格關聯合并

表單數據進行合并連接,這里使用內連接為例,數據庫內連接、外連接不懂得可以去自行查閱

merge(df1, df2, on = 'ID'?,how = 'inner' )

df1 = pd.DataFrame({'ID': [1, 2, 3], '姓名': ['Alice', 'Bob', 'Charlie']})
df2 = pd.DataFrame({'ID': [2, 3, 4], '成績': [90, 85, 95]})# 內連接(基于ID列)
merged = pd.merge(df1, df2, on='ID', how='inner')

強拼接,按維度直接進行強拼接(比較生硬)

concat([ df1, df2 ], axis =0)? ? ? ? ? ? ? ? 按行進行拼接,axis=1 為按列

導出/讀入數據

  • to_csv( '文件路徑+名稱?.csv', index = False?)? ? ? ?
    • 保存為csv文件,index=False表示不保存行索引
  • to_excel( '文件路徑+名稱 .xlsx' , sheet_name = '表名', index = False)
    • sheet_name 設置表格的名稱,默認為Sheet1,index 表示是否保存行索引
  • read_csv( '文件路徑+名稱?.csv' )
  • read_excel( '文件路徑+名稱 .xlsx' , sheet_name = '表名')
    • sheet_name:指定為文件中的哪一個工作表

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/85949.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/85949.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/85949.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

java教程筆記(十一)-泛型

Java 泛型(Generics)是 Java 5 引入的重要特性之一,它允許在定義類、接口和方法時使用類型參數。泛型的核心思想是將類型由具體的數據類型推遲到使用時再確定,從而提升代碼的復用性和類型安全性。 1.泛型的基本概念 1. 什么是泛…

力扣刷題(第四十九天)

靈感來源 - 保持更新,努力學習 - python腳本學習 反轉鏈表 解題思路 迭代法:通過遍歷鏈表,逐個改變節點的指針方向。具體步驟如下: 使用三個指針:prev(初始為None)、curr(初始為…

設置應用程序圖標

(1)找一張圖片 (2)然后轉ico圖片 在線生成透明ICO圖標——ICO圖標制作 驗證16x16就可以 降低exe大小 (3) 在xxx.pro修改 添加 (4) 刪除 build 和 xxxpro_user文件 (5)編譯project 和運行xx.exe (6)右鍵 設置快捷方式

免費wordpress模板下載

西瓜紅色的免費wordpress模板,簡潔實用又容易上手,適合新手使用。 下載 https://www.waimaoyes.com/moban/2231.html

【React】React 18 并發特性

React 18 引入了 并發特性(Concurrent Features),這是一次對 React 渲染機制的重大升級,讓 React 更加智能、響應更流暢、資源更節省。 我們來詳細講解一下它的原理、特性、API 以及實際應用。 🧠 一、什么是并發特性…

FFMPEG 提取視頻中指定起始時間及結束時間的視頻,給出ffmpeg 命令

以下是提取視頻中指定起始時間及結束時間的 ffmpeg 命令示例: bash 復制 ffmpeg -i input.mp4 -ss 00:01:30.00 -to 00:05:00.00 -c copy output.mp4 其中,-i input.mp4 是指定要處理的輸入視頻文件為 “input.mp4”。 -ss 00:01:30.00 表示指定視頻的起始時間為 1 分 30 …

mybatis的if判斷==‘1‘不生效,改成‘1‘.toString()才生效的原因

mybatis的xml文件中的if判斷‘1’不生效&#xff0c;改成’1’.toString()才生效 Mapper接口傳入的參數 List<Table> queryList(Param("state") String state);xml內容 <where><if test"state ! null and state 1">AND EXISTS(select…

AI 模型分類全解:特性與選擇指南

人工智能&#xff08;AI&#xff09;技術正以前所未有的速度改變著我們的生活和工作方式。AI 模型作為實現人工智能的核心組件&#xff0c;種類繁多&#xff0c;功能各異。從簡單的線性回歸模型到復雜的深度學習網絡&#xff0c;從文本生成到圖像識別&#xff0c;AI 模型的應用…

01-python爬蟲-第一個爬蟲程序

開始學習 python 爬蟲 第一個獲取使用最多的網站-百度 源代碼 并將源代碼保存到文件中 from urllib.request import urlopenurl https://www.baidu.com resp urlopen(url)with open(baidu.html, w, encodingutf-8) as f:f.write(resp.read().decode(utf-8))知識點&#xf…

四六級監考《培訓學習》+《培訓考試》

1 線上注冊 &#xff08;網址&#xff1a; https://passport.neea.edu.cn 2 登錄培訓平臺參加線上必修課程學習和考核 &#xff08;平臺網址&#xff1a; https://kwstudy.neea.edu.cn 注意選擇學員入口&#xff09; 3 考試要求&#xff1a;考試成績須達應到80分以上&#xf…

回顧Java與數據庫的30年歷程

當 Java 1.0 于 1996 年推出時&#xff0c;語言和互聯網都與今天大不相同。當時&#xff0c;網絡主要是靜態的&#xff0c;而 Java 承諾通過注入交互式游戲和動畫來為網絡注入活力&#xff0c;這一承諾極具前景。根據 1995 年寫給《連線》雜志的 David Banks 的說法&#xff0c…

simulink有無現成模塊可以實現將三個分開的輸入合并為一個[1*3]的行向量輸出?

提問 simulink有無現成模塊可以實現將三個分開的輸入合并為一個[1*3]的行向量輸出&#xff1f; 回答 Simulink 本身沒有一個單獨的模塊能夠直接將三個分開的輸入合并成一個 [13] 行向量輸出&#xff0c;但是可以通過 組合模塊實現你要的效果。 ? 推薦方式&#xff1a;Mux …

代碼訓練LeetCode(24)數組乘積

代碼訓練(24)LeetCode之數組乘積 Author: Once Day Date: 2025年6月5日 漫漫長路&#xff0c;才剛剛開始… 全系列文章可參考專欄: 十年代碼訓練_Once-Day的博客-CSDN博客 參考文章: 238. 除自身以外數組的乘積 - 力扣&#xff08;LeetCode&#xff09;力扣 (LeetCode) 全…

NLP學習路線圖(十七):主題模型(LDA)

在浩瀚的文本海洋中航行&#xff0c;人類大腦天然具備發現主題的能力——翻閱幾份報紙&#xff0c;我們迅速辨別出"政治"、"體育"、"科技"等板塊&#xff1b;瀏覽社交媒體&#xff0c;我們下意識區分出美食分享、旅行見聞或科技測評。但機器如何…

vue對axios的封裝和使用

在 Vue 項目中&#xff0c;使用 axios 進行 HTTP 請求是非常常見的做法。為了提高代碼的可維護性、統一錯誤處理和請求攔截/響應攔截邏輯&#xff0c;對axios進行封裝使用。 一、基礎封裝&#xff08;適用于 Vue 2 / Vue 3&#xff09; 1. 安裝 axios npm install axios2. 創…

HTML實現端午節主題網站:龍舟爭渡,憑吊祭江誦君賦。

名人說:龍舟爭渡,助威吶喊,憑吊祭江誦君賦。——蘇軾《六幺令天中節》 創作者:Code_流蘇(CSDN)(一個喜歡古詩詞和編程的Coder??) 目錄 一、項目概覽:傳統與現代的技術碰撞1. 核心特性一覽2. 網站結構設計二、技術亮點深度解析1. 響應式布局的精妙設計2. CSS動畫系統的…

【Redis】筆記|第9節|Redis Stack擴展功能

Redis Stack 擴展功能筆記&#xff08;基于 Redis 7&#xff09; 一、Redis Stack 概述 定位&#xff1a;Redis OSS 擴展模塊&#xff08;JSON、搜索、布隆過濾器等&#xff09;&#xff0c;提供高級數據處理能力。核心模塊&#xff1a; RedisJSON&#xff1a;原生 JSON 支持…

如何選擇專業數據可視化開發工具?為您拆解捷碼全功能和落地指南!

分享大綱&#xff1a; 1、捷碼核心功能&#xff1a;4維能力支撐大屏開發 2、3步上手&#xff1a;可視化大屏開發操作路徑 3、適配場景&#xff1a;8大行業已驗證方案 在各行各業要求數字化轉型時代&#xff0c;數據可視化大屏已成為眾多企業數據驅動的核心工具。面對市場上繁雜…

測試W5500的第11步_使用ARP解析IP地址對應的MAC地址

本文介紹了基于W5500芯片的ARP協議實現方法&#xff0c;詳細闡述了ARP請求與回復的工作機制。ARP協議通過廣播請求和單播回復實現IP地址與MAC地址的映射&#xff0c;確保局域網設備間的可靠通信。文章提供了完整的STM32F10x開發環境下的代碼實現&#xff0c;包括網絡初始化、SP…

在樹莓派上添加音頻輸入設備的幾種方法

在樹莓派上添加音頻輸入設備可以通過以下步驟完成&#xff0c;具體方法取決于設備類型&#xff08;如USB麥克風、3.5mm接口麥克風或HDMI音頻輸入&#xff09;。以下是詳細指南&#xff1a; 1. 連接音頻輸入設備 USB麥克風/聲卡&#xff1a;直接插入樹莓派的USB接口。3.5mm麥克…