N數據分析pandas基礎.py

?前言:在數據分析領域,Python 的 Pandas 庫堪稱得力助手。它不僅擁有高效的數據處理能力,還能與 NumPy 完美配合——后者強大的數值計算功能為 Pandas 提供了堅實的技術基礎。

目錄

Pandas數據分析實戰:解鎖數據處理的高效之道

數據創建與查看:第一步總是最難的?

數據選擇與修改:精準操作的奧秘

數據篩選:大海撈針的必備技能

數據排序與聚合:深度分析的利器

數據合并與缺失值處理: perfection 的關鍵步驟

Pandas與NumPy的神仙組合

總結


Pandas數據分析實戰:解鎖數據處理的高效之道

最近在學習數據分析的過程中,我發現 Pandas 這個工具真的是太實用了!今天就想跟大家分享一下我在學習 Pandas 過程中總結的一些基礎操作和實戰經驗。

數據創建與查看:第一步總是最難的?

剛開始接觸數據分析時,創建和查看數據這一步就讓我琢磨了很久。后來發現 Pandas 的 DataFrame 簡直就是為了解決這個問題而生的。你可以用字典輕松創建一個數據表,像這樣:

import numpy as np
import pandas as pddata = {'名字': ['張三', '李四', '王五', '趙六'],'年齡': [25, 30, 35, 40],'城市': ['北京', '上海', '廣州', '深圳']}
df = pd.DataFrame(data)
print("原始數據:")
print(df)

是不是很方便?不過別急,這還只是開始。查看數據的時候,我發現 head()tail() 簡直是拯救了我這個數據量大的時候容易犯迷糊的人。再配上 info(),數據的底細能摸得一清二楚。

數據選擇與修改:精準操作的奧秘

在數據選擇上,我發現 Pandas 的方式特別靈活。按列選擇直接用列名就行,簡單粗暴。按行選擇呢,ilocloc 各有千秋,iloc 按位置索引,loc 按標簽索引,用起來得心應手。

print("\n選擇索引為1的行:")
print(df.iloc[1])print("\n選擇索引為2的行:")
print(df.loc[2])

至于修改數據,剛開始我還擔心會很復雜。結果發現批量修改一列簡單得很,直接重新賦值就行了。要是只改某個位置的數據,用 at 方法也很方便。

print("\n修改'年齡'列的值:")
df['年齡'] = [26, 31, 36, 41]
print(df)print("\n修改索引為1的行,年齡為32:")
df.at[1, '年齡'] = 32
print(df)

這些操作讓我感覺對數據的掌控力滿滿。

數據篩選:大海撈針的必備技能

數據篩選這一步,我感覺就像是在大海里撈針。不過 Pandas 讓這個過程變得簡單了。篩選符合條件的數據,直接用條件表達式就能搞定。

print("\n篩選年齡大于30的人:")
print(df[df['年齡'] > 30])print("\n篩選城市為'北京'或'上海'的人:")
print(df[(df['城市'] == '北京') | (df['城市'] == '上海')])

通過這些篩選,我能快速把想要的數據挑出來,效率提升不少。

數據排序與聚合:深度分析的利器

數據分析嘛,肯定少不了排序和聚合。排序的話,sort_values() 讓數據能按照指定列從小到大或者降序排列,特別直觀。

print("\n按年齡從小到大排序:")
print(df.sort_values(by='年齡'))print("\n按年齡降序排序:")
print(df.sort_values(by='年齡', ascending=False))

聚合操作更是一絕。用 groupby 按城市統計平均年齡,一眼就能看出不同城市的年齡分布情況。

data_group = {'城市': ['北京', '北京', '上海', '上海', '廣州', '廣州'],'年齡': [25, 30, 28, 35, 32, 40]}
df_group = pd.DataFrame(data_group)print("\n按城市統計平均年齡:")
print(df_group.groupby('城市')['年齡'].mean())

這些操作讓我對數據的理解更深入了。

數據合并與缺失值處理: perfection 的關鍵步驟

在實際項目里,數據來源往往很雜亂。數據合并和缺失值處理就成了關鍵。合并數據時,merge 方法能幫我們把不同來源的數據整合到一起。

df1 = pd.DataFrame({'名字': ['張三', '李四'],'年齡': [25, 30]})
df2 = pd.DataFrame({'名字': ['李四', '王五'],'工作': ['醫生', '教師']})print("\n按'名字'列合并兩個DataFrame:")
print(pd.merge(df1, df2, on='名字', how='inner'))print("\n外連接(包含所有名字):")
print(pd.merge(df1, df2, on='名字', how='outer'))

至于缺失值,填充或者刪除都行,看具體需求。

data_with_nan = {'名字': ['張三', '李四', np.nan, '趙六'],'年齡': [25, np.nan, 35, 40],'城市': ['北京', '上海', '廣州', np.nan]}
df_with_nan = pd.DataFrame(data_with_nan)print("\n用'未知'填充名字的缺失值:")
print(df_with_nan['名字'].fillna('未知'))print("\n用平均值填充年齡的缺失值:")
mean_age = df_with_nan['年齡'].mean()
print(df_with_nan['年齡'].fillna(mean_age))print("\n刪除有缺失值的行:")
print(df_with_nan.dropna())

這些步驟讓數據更完整、更可用。

Pandas與NumPy的神仙組合

提到數據處理,就不得不提 Pandas 和 NumPy 的神仙組合。NumPy 的數值計算能力,為 Pandas 提供了強大的支持。比如用 NumPy 生成隨機數據,再用 Pandas 分析,這種操作在實際項目里很常見。

data = np.random.randn(5, 3)
df_random = pd.DataFrame(data, columns=['A', 'B', 'C'])
print("\n隨機生成的數據:")
print(df_random)print("\n每列的平均值:")
print(df_random.mean())

總結

Pandas 作為數據分析的強大工具,為我們提供了豐富的功能和便捷的操作方式。無論是數據創建、查看、選擇、修改,還是數據篩選、聚合、合并,都能輕松應對。結合 NumPy 的數值計算能力,Pandas 讓我們在數據分析的道路上更加得心應手。希望這篇博客能為你打開數據分析的大門,幫助你在數據的海洋中探索出更多寶藏。

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

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

相關文章

衛星通信鏈路預算之二:帶寬和功帶平衡

在上一個章節衛星通信鏈路預算之一:信噪比分配 中,我們介紹了衛星通信鏈路中最核心的概念:信噪比分配,并給出了衛星通信鏈路總信噪比的計算公式。 本篇文章,我們將介紹衛星通信鏈路中的另外一個基本概念:帶…

QGIS新手教程5:圖層屬性查詢與表達式篩選技巧

? QGIS新手教程5:圖層屬性查詢與表達式篩選技巧 字段篩選、表達式構建器、選擇集操作一步到位! 目錄 ? QGIS新手教程5:圖層屬性查詢與表達式篩選技巧📁 一、示例數據準備(繼續使用第四篇中的示例)&#…

用 el-dialog 做出彈出框是圖片

今天項目上用到個功能是點擊按鈕彈出一個 modal&#xff0c;有遮罩層而且在上面顯示圖片。 其實就是 el-dialog 的功能&#xff0c;但是 el-dialog 彈出后&#xff0c;有標簽關閉按鈕還有背景。 解決辦法&#xff1a;el-dialog 的 width 設為 0 就可以了。 <template>…

Gartner《Decision Point for Selecting the Right APIMediation Technology》學習心得

一、API 中介技術概述 背景&#xff0c;API 中介技術變得多樣化&#xff0c;應用與集成架構師需要借助決策框架&#xff0c;從企業級 API 網關、輕量級網關、入口網關以及服務網格中挑選出適合多粒度服務和 API 的中介技術。 隨著無服務器架構與容器管理系統的興起&#xff0…

快速 SystemC 之旅(一)

快速 SystemC 之旅&#xff08;一&#xff09; 一、前言背景二、實驗環境1. 安裝步驟2. 驗證安裝 三、RTL 級硬件描述1. 初看模塊2. 二輸入與非門 一、前言背景 因項目需求&#xff0c;近期開始開展電子系統級設計&#xff08;ESL&#xff09;進行事務級建模&#xff08;TLM&a…

解決 Golang 下載golang.org/x包失敗方案

在 Golang 開發過程中&#xff0c;不少開發者都遇到過這樣的困擾&#xff1a;當試圖下載golang.org相關包時&#xff0c;會出現訪問失敗的情況&#xff0c;尤其是golang.org/x系列包&#xff0c;作為眾多第三方庫依賴的核心組件&#xff0c;其無法正常下載會嚴重影響項目的開發…

CppCon 2016 學習:BUILDING A MODERN C++ FORGE FOR COMPUTE AND GRAPHICS

你提供的這段文字是關于 設計一個精簡但足夠的 C 框架來驅動 Vulkan 的目標陳述&#xff0c;屬于項目文檔或演講的第一部分 “Goals”。我們可以把它逐項拆解并深入理解&#xff1a; PART (I – I): GOALS&#xff08;目標&#xff09; 總體目標&#xff1a; 構建一個最小但足…

# AI武裝大腦:技術管理者如何用人工智能重構認知與決策系統

作為一位經歷了15年技術管理實戰的老兵&#xff0c;我見過太多項目因為決策失誤、認知局限而陷入泥潭。直到我開始系統性地用AI武裝大腦&#xff0c;才真正找到了突破技術管理瓶頸的利器。今天&#xff0c;我要分享的不是那些泛泛而談的AI概念&#xff0c;而是如何用AI真正提升…

【Linux】UDP與TCP協議

目錄 UDP協議 1.1通信流程 1.2函數 socket bind sendto recvfrom close 1.3實現udp通信 TCP協議 1.1TCP頭部結構 1.2通信流程 三次握手 正式通信 四次揮手 1.3協議特性 面向字節流 可靠傳輸 序列號和確認號 重傳機制 流量控制和擁塞控制 1.4常用函數 s…

gbase8s之MyBatis批量update問題

源代碼 <update id"updateDynamicTableData"><foreach collection"mapList" item"map" separator";">UPDATE ${tableName} SET<foreach collection"map" item"value" index"key" separ…

博圖SCL中WHILE語句的使用詳解及案例

在西門子TIA Portal的SCL&#xff08;結構化控制語言&#xff09;編程中&#xff0c;WHILE循環是處理條件迭代任務的核心工具。它根據布爾表達式動態控制循環執行&#xff0c;適用于不確定循環次數的場景。下面從語法、執行流程、注意事項到實際案例全面解析。 一、WHILE循環基…

簡單聊聊JVM中的幾種垃圾收集算法

3.4、分代收集算法 分代收集算法&#xff0c;可以看成以上內容的延伸。它的實現思路是根據對象的生命周期的不同&#xff0c;將內存劃分為幾塊&#xff0c;比如把堆空間劃分為新生代和老年代&#xff0c;然后根據各塊的特點采用最適當的收集算法。 在新生代中&#xff0c;存在…

依賴已導入,已下載,無法使用問題

明明已經導入依賴&#xff0c;卻無法使用相關注解 于是&#xff0c;我使用 mvn dependency:tree -Dverbose 來查看是否有依賴沖突 [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal on project agileboot…

答題考試系統小程序ThinkPHP+UniApp

ThinkPHPUniapp開發的小程序答題考試系統&#xff0c;支持多種試題類型、多種試題難度、練題、考試、補考模式&#xff0c;提供全部前后臺無加密源代碼&#xff0c;支持私有化部署. 更新日志 V1.7.1修復一些問題 解決考場成績列表重復問題&#xff1b; 解決后臺材料題選擇子…

DHCP服務管理

目錄 DHCP協議 DHCP的優勢 DHCP的分配方式 應用場景 注意 工作流程 何時更新租約 當客戶端重啟后 客戶端類型 DCHP安裝與配置 網絡規劃&#xff1a; 配置 DHCP 作用域 啟動 DHCP 服務 配置路由器 配置路由器網卡 IP 開啟 IP 轉發&#xff08;確保跨網段通信&…

12.UDP客戶端

準備工作 硬件準備&#xff1a;確保你的STM32板子已經正確連接了DP83848網絡芯片。 軟件設置&#xff1a; 安裝好STM32CubeMX用于配置工程。 選擇合適的STM32 HAL庫版本。 如果可能的話&#xff0c;安裝LwIP庫支持TCP/IP協議棧。 步驟 1. 使用STM32CubeMX配置項目 打開…

希爾腳本簡介及常用命令代碼整理

一、Shell 腳本簡介 1. 定義 Shell 是用戶與操作系統內核交互的橋梁&#xff0c;常見類型有 Bash、Zsh、PowerShell 等。Shell 腳本則是一系列 Shell 命令的集合&#xff0c;通常保存為后綴為.sh 的文本文件。 2. 作用 類別描述自動化重復性任務例如定期備份數據、執行定時…

【人工智能下的智算網絡】廣域網優化

一、廣域網絡多路徑I/O寫的并行路徑優化方案 1.1、數學建模 網絡拓撲優化? 1. ?拓撲抽象與路徑發現? ?鄰接矩陣建模?&#xff1a; 將網絡節點抽象為圖頂點 G (V, E)&#xff0c;鏈路帶寬與延遲定義為邊權 w(e)。構造鄰接矩陣 A&#xff0c;其中元素 A_{ij} 表示節點 …

AI測試開發工程師如何用大模型調用工具:從入門到實踐

在軟件測試領域&#xff0c;測試工程師常常面臨測試用例設計復雜、數據生成繁瑣、結果驗證耗時等挑戰。隨著大語言模型&#xff08;LLM&#xff09;的迅速發展&#xff0c;Chat類大模型&#xff08;如GPT、LangChain支持的模型&#xff09;為測試開發提供了一種全新思路——工具…

遷移學習基礎

知識的“跨界復用” 你是一位經驗豐富的廚師&#xff08;源模型&#xff09;&#xff0c;尤其擅長做意大利菜&#xff08;源任務/源域&#xff09;。現在&#xff0c;老板讓你去新開的一家融合餐廳工作&#xff0c;需要你做亞洲菜&#xff08;目標任務/目標域&#xff09;。你…