數據分析庫 Pandas

對于Pandas的簡單認識和基本操作的練習

一 介紹?

Pandas 是一個開源的數據分析和數據處理庫,它是基于 Python 編程語言的庫。
Pandas 提供了易于使用的數據結構和數據分析工具,特別適用于處理結構化數據,如表格型數據(類似于 Excel 表格)。
Pandas 是數據科學和分析領域中常用的工具之一,它使得用戶能夠輕松地從各種數據源中導入數據,并對數據進行高效的操作和分析。
Pandas 廣泛應用在學術、金融、統計學等各個數據分析領域。

主要數據結構

Pandas主要引入了兩種新的數據結構:DataFrame 和 Series。
Series:類似于一維數組或列表,是由一組數據以及與之相關的數據標簽(索引)構成。Series 可以看作是 DataFrame 中的一列,也可以是單獨存在的一維數據結構。
DataFrame:類似于一個二維表格,是 Pandas 中最重要的數據結構。DataFrame 可以看作是由多個 Series 按列排列構成的表格,它既有行索引也有列索引,因此可以方便地進行行列選擇、過濾、合并等操作。


二 使用

?Series

索引:每一個Series都有一個索引,可以是整數,字符串,日期等類型,如果沒有顯示指定索引,Pandas會默認自動創建一個從0開始的整數索引

數據類型:Series可以容納不同數據類型的元素,包括整數,浮點數,字符串等

# series
#創建
#可以通過pd.Series()構造器創建 也可以傳遞一個數據數據加一個可選的索引數組import pandas as pd
a = [1,2,3,4]
b = pd.Series(a)time = ['23年','24年','25年','26年']
date = [100,200,300,400]
c = pd.Series(date,time)
print(c)sites = {1:"0012",2:"0013",3:"0014",4:"0015"}
d = pd.Series(sites)
print(d)var = pd.Series(sites,index=[1,3]) # 按照索引去獲取數組
print(var)

DataFrame

列和行:DataFrame 由多個列組成,每一列都有一個名稱,可以看作一個Series 同時還存在有行索引

二維結構:DataFrame 是一個二維表格 具有行和列 可以視為多個Series對象組成的字典

列的數據類型:不同的列可以包含不同的數據類型 例如整數 浮點型 字符串

?創建方式?

import pandas as pd
# 字典嵌套列表創建
sites = {"web_name":["Google","Baidu","SH"],"age":[1,3,9]}
var = pd.DataFrame(sites)
var
import pandas as pd
# 使用Series創建
data = {"name":pd.Series(["一","二","三"]),"age":pd.Series([21,22,23]),"money":pd.Series([21.2,22.2,23.2])
}
data = pd.DataFrame(data)
data

?文件處理?

import pandas as pd
# csv數據讀取
gender = pd.read_csv(r"D:\Study Note\Python_note\Pandas\gender_submission.csv")
gender
import pandas as pd
# JSON數據讀取
JSON_Test = pd.read_json(r"D:\Study Note\Python_note\Pandas\test.json")
JSON_Test

?保存為文件

import pandas as pd# 數據
data = {"name":pd.Series(["張三","李四","王五"]),"age":pd.Series([21,22,23]),"money":pd.Series([21.2,22.2,23.2])
}# 將數據轉換為DataFrame
data = pd.DataFrame(data)# 將DATa Frame寫入Excel文件中
data.to_excel('test.xlsx',index=False)print("Excel文件生成成功")

常用函數

函數用法
pd.merge()實現數據合并
pd.concat()將多個數據框沿著某個軸進行連接
loc[]和iloc[]對數據進行索引和選擇
drop()刪除某些列或行
isnull()檢查失值并使用
fillna()填充缺失值
sort_values()排序
import pandas as pd
df = pd.read_csv(r"D:\Study Note\Python_note\Pandas\test.csv")
# df.head()# 設置編號 方便篩查
df.set_index('PassengerId',inplace=True)# 獲取單個值
a = df.loc[900,'Name']# 獲取一個Series
b = df.loc[900,['Sex','Age']]# 得到DataFrame
c = df.loc[[896,897,900],["Name","Sex","Age"]]# 行列按區間查詢
d = df.loc[896: 905,"Name":"Age"]# 布爾查詢
f = df.loc[df["Age"] < 18,:]# 條件查詢
g = df.loc[(df["Age"]<=30) & (df["Age"]>=18) & (df["Sex"] == "male"),:]# 新增列查詢
h = df.loc[:,"Year"] = df["Age"] +  2025
df.head()
# 統計函數
# 查看單個Series的數據
df["Age"].mean()# 最大值
df["Age"].max()# 最小值
df["Age"].min()# 按值計數
df["Sex"].value_counts()# 去重
df["Age"].unique()# 缺失值處理
stu = pd.read_excel(r"D:\Study Note\Python_note\Pandas\test.xlsx",skiprows = 2)# 檢查空值
stu.isnull()
stu["name"].notnull()# 排序
df2 = pd.read_csv(r"D:\Study Note\Python_note\Pandas\gender_submission.csv")
df2.sort_values("Age",ascending=False)

?學習時間 2025年07月12日

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

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

相關文章

qt 中不要讓 lambda 槽函數捕獲信號源對象的共享指針

錯誤示例std::shared_ptr<QSerialPort> serial{new QSerialPort{}};QSerialPort::connect(serial.get(),&QSerialPort::readyRead,[serial](){QByteArray receive_data serial->readAll();std::cout.write(receive_data.data(), receive_data.size());});這會直接…

Solidity 合約的編寫-完整開發流程:從編譯、測試、部署到交互

&#x1f9f1; Solidity 合約開發全流程&#xff08;Foundry 版&#xff09;? 適合對象&#xff1a;已經能寫合約但不清楚如何測試、部署、交互的開發者? 工具鏈&#xff1a;Foundry&#xff08;forge, anvil, cast&#xff09;&#x1f4cc; 開發流程總覽1?? 初始化項目 2…

設計模式 - 面向對象原則:SOLID最佳實踐

文章目錄深入理解 SOLID&#xff1a;用對原則&#xff0c;別把簡單問題搞復雜SOLID 原則概覽1. 單一職責原則&#xff08;SRP&#xff09;2. 開閉原則&#xff08;OCP&#xff09;3. 里氏替換原則&#xff08;LSP&#xff09;4. 接口隔離原則&#xff08;ISP&#xff09;5. 依賴…

Vue 3 中父組件內兩個子組件相互傳參的幾種方法

方法一&#xff1a;通過父組件中轉&#xff08;Props Emits&#xff09;<!-- ParentComponent.vue --> <template><ChildA :message-from-b"messageFromB" send-to-b"handleSendToB" /><ChildB :message-from-a"messageFromA&q…

三子棋游戲設計與實現(C 語言版)

一、需求分析目標&#xff1a;實現一個簡單的人機對戰三子棋&#xff0c;支持以下功能&#xff1a;初始化空棋盤&#xff0c;清晰展示落子狀態。玩家通過坐標落子&#xff08;X 代表玩家&#xff09;&#xff0c;電腦隨機落子&#xff08;O 代表電腦&#xff09;。實時判斷勝負…

GD32 CAN1和TIMER0同時開啟問題

背景&#xff1a;今天在一個項目調試的時候發現了一些問題&#xff0c;由此貼記錄一下問題解決的過程。使用的芯片是GD32F305VE。使用到了CAN1和TIMER0。在使用這連個外設的時候發送了一些問題。單獨使用CAN1。功能正常。單獨使用TIMER0。配置為輸出模式。功能正常。但是當兩個…

劍指offer56_數組中唯一只出現一次的數字

數組中唯一只出現一次的數字在一個數組中除了一個數字只出現一次之外&#xff0c;其他數字都出現了三次。 請找出那個只出現一次的數字。 你可以假設滿足條件的數字一定存在。 思考題&#xff1a; 如果要求只使用 O(n) 的時間和額外 O(1) 的空間&#xff0c;該怎么做呢&#xf…

從語音識別到智能助手:Voice Agent 的技術進化與交互變革丨Voice Agent 學習筆記

From Research AI&#xff1a; 最近看到 Andrew Ng 的一句話讓我印象深刻&#xff1a;“While some things in AI are overhyped, voice applications seem underhyped right now.”&#xff08;盡管 AI 中有些領域被過度炒作&#xff0c;語音應用卻似乎被低估了&#xff09;。…

什么是Jaccard 相似度(Jaccard Similarity)

文章目錄? 定義&#xff1a;&#x1f4cc; 取值范圍&#xff1a;&#x1f50d; 舉例說明&#xff1a;&#x1f9e0; 應用場景&#xff1a;?? 局限性&#xff1a;&#x1f4a1; 擴展概念&#xff1a;Jaccard 相似度&#xff08;Jaccard Similarity&#xff09; 是一種用于衡量…

ragflow_多模態文檔解析與正文提取策略

多模態文檔解析與正文提取策略 RAGflow的文檔解析系統位于deepdoc/parser/目錄下,實現了對多種文檔格式的統一解析處理。該系統采用模塊化設計,針對不同文檔格式提供專門的解析器,并通過視覺識別技術增強解析能力。本文將深入探討RAGflow的文檔解析系統的設計原理、實現細節…

數據結構棧的實現(C語言)

棧的基本概念棧是一種特殊的線性存儲結構&#xff0c;是一種操作受到限制的線性表&#xff0c;特殊體現在兩個地方&#xff1a;1、元素進棧出棧的操作只能從同一端完成&#xff0c;另一端是封閉的&#xff0c;通常將數據進棧叫做入棧&#xff0c;壓棧等&#xff0c;出棧叫做彈棧…

【springboot】IDEA手動創建SpringBoot簡單工程(無插件)

大致步驟 創建Maven工程 引入依賴 提供啟動類 詳細教程 創建Maven工程 修改pom.xml文件 添加父節點 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.5.3</…

獨立開發第二周:構建、執行、規劃

一 第二周的獨立開發旅程落下帷幕。相較于第一周的適應&#xff0c;本周的核心詞是“聚焦”與“執行”。 目標非常明確&#xff1a;在產品開發上取得進展&#xff1b;在個人工作節奏上&#xff0c;將上周初步形成的框架進行實踐與固化。 同時&#xff0c;為至關重要的自媒體運營…

在YOLO-World中集成DeformConv、CBAM和Cross-Modal Attention模塊的技術報告

在YOLO-World中集成DeformConv、CBAM和Cross-Modal Attention模塊的技術報告 1. 引言 1.1 項目背景 目標檢測是計算機視覺領域的核心任務之一,而YOLO(You Only Look Once)系列算法因其出色的速度和精度平衡而廣受歡迎。YOLO-World是YOLO系列的最新發展,專注于開放詞匯目標…

從UI設計到數字孿生實戰應用:構建智慧金融的風險評估與預警平臺

hello寶子們...我們是艾斯視覺擅長ui設計、前端開發、數字孿生、大數據、三維建模、三維動畫10年經驗!希望我的分享能幫助到您!如需幫助可以評論關注私信我們一起探討!致敬感謝感恩!一、引言&#xff1a;傳統金融風控的 “滯后困境” 與數字孿生的破局之道金融風險的隱蔽性、突…

【Linux】權限相關指令

前言&#xff1a; 上兩篇文章我們講到了&#xff0c;關于Linux中的基礎指令。 【Linux】初見&#xff0c;基礎指令-CSDN博客【Linux】初見&#xff0c;基礎指令&#xff08;續&#xff09;-CSDN博客 本文我們來講Linux中關于權限中的一些指令 shell命令 Linux嚴格來說是一個操…

前端學習3--position定位(relative+absolute+sticky)

繼上一篇&#xff0c;做下拉菜單的時候&#xff0c;涉及到了position&#xff0c;這篇就來學習下~先看下position在下拉菜單中的應用&#xff1a;一、關鍵代碼回顧&#xff1a;/* 下拉菜單容器 */ .dropdown {position: relative; /* ? 關鍵父級 */ }/* 下拉內容&#xff08;默…

APP Inventor使用指南

APP Inventor使用指南一、組件介紹二、邏輯設計設計方法&#xff1a;設計實例&#xff08;參考嘉立創教程&#xff09;點擊跳轉 &#xff1a; app inventor&#xff08;點不開的話需要&#x1fa84;&#x1fa84;&#x1fa84;&#x1fa84;&#x1fa84;&#xff09; 一、組…

SpringAI實現保存聊天記錄到redis中

redis相關準備添加依賴我利用redission來實現<dependency><groupId>org.redisson</groupId><artifactId>redisson</artifactId><version>3.37.0</version> </dependency>添加配置文件spring:redis:database: 5host: 127.0.0.1…

Unity中使用EzySlice實現模型切割與UV控制完全指南

引言 在Unity中實現3D模型的動態切割是一個常見的需求&#xff0c;無論是用于游戲特效、建筑可視化還是醫療模擬。本文將全面介紹如何使用EzySlice插件實現高效的模型切割&#xff0c;并深入探討如何通過Shader Graph精確控制切割面的UV映射。 第一部分&#xff1a;EzySlice基…