day22 學習筆記

文章目錄

  • 前言
  • 一、遍歷
    • 1.行遍歷
    • 2.列遍歷
    • 3.直接遍歷
  • 二、排序
  • 三、去重
  • 四、分組


前言

通過今天的學習,我掌握了對Pandas的數據類型進行基本操作,包括遍歷,去重,排序,分組


一、遍歷

1.行遍歷

  • intertuples方法用于遍歷Dataframe的行,返回包含行數據及命名的元組
data = {'A': [1, 2, 3],'B': [4, 5, 6],'C': [7, 8, 9]
}
df = pd.DataFrame(data, index=['a', 'b', 'c'])# 使用 itertuples() 遍歷行
for row in df.itertuples(index=False): #如果index為False,則結果過濾行索引信息print(row)for i in row:print(i)

tips:可以指定index參數,用于控制是否返回行索引信息

2.列遍歷

  • items方法用于遍歷Dataframe的列,返回包括列名和列數據的迭代器
data = {'A': [1, 2, 3],'B': [4, 5, 6],'C': [7, 8, 9]
}
df = pd.DataFrame(data, index=['a', 'b', 'c'])# 使用 items() 遍歷列
for column_name, column_data in df.items():print(f"Column Name: {column_name}, Column Data: {column_data}")

3.直接遍歷

  • 使用index,columns屬性進行遍歷
data = {'A': [1, 2, 3],'B': [4, 5, 6],'C': [7, 8, 9]
}
df = pd.DataFrame(data, index=['a', 'b', 'c'])for idx in df.index:for col in df.columns:print(df.loc[idx,col])

二、排序

  • sort_values方法用于對Dataframe進行排序
  • DataFrame.sort_values(by, axis=0, ascending=True, inplace=False, kind=‘quicksort’, na_position=‘last’)
  • by:列的標簽或列的標簽列表。指定要排序的列
  • ascending:布爾值或布爾值列表,指定是升序排序(True)還是降序排序(False)。可以為每個列指定不同的排序方向。
data = {'A': [3, 2, 1],'B': [6, 5, 4],'C': [9, 8, 7]
}
df = pd.DataFrame(data, index=['b', 'c', 'a'])df_sorted = df.sort_values(by='A',ascending=False)
print(df_sorted)df = pd.DataFrame({'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],'Age': [25, 30, 25, 35, 30],'Score': [85, 90, 80, 95, 88]
})
# 如果列中存在相同的值,可以指定兩個列進行排序
df_sorted = df.sort_values(by=['Age', 'Score'], ascending=[False, True])
print(df_sorted)

三、去重

  • drop_duplicates方法用于刪除重復行或元素
  • drop_duplicates(by=None, subset=None, keep=‘first’, inplace=False)
  • keep:指定如何處理重復項
  • by:用于標識重復項的列名或列名列表
data = {'A': [1, 2, 2, 3],'B': [4, 5, 5, 6],'C': [7, 8, 8, 9]
}
df = pd.DataFrame(data)# 刪除所有列的重復行,默認保留第一個出現的重復項
df_unique = df.drop_duplicates()
print(df_unique)# 刪除重復行,保留最后一個出現的重復項
df_unique = df.drop_duplicates(keep='last')
print(df_unique)# 刪除所有重復項
df_unique = df.drop_duplicates(keep=False)
print(df_unique)

四、分組

  • groupby方法用于對數據進行分組
  • DataFrame.groupby(by, axis=0, level=None, as_index=True, sort=True, group_keys=True, squeeze=False, observed=False, **kwargs)
  • by:指定分組的列名
data = {'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'],'B': ['one', 'one', 'two', 'three', 'two', 'two', 'one', 'three'],'C': [1, 2, 3, 4, 5, 6, 7, 8],'D': [10, 20, 30, 40, 50, 60, 70, 80]}
df = pd.DataFrame(data)# 按列'A'分組,返回一個對象
grouped = df.groupby('A')# 查看分組結果
for name, group in grouped:print(f"Group: {name}")print(group)print()mean = df.select_dtypes(include='number').groupby(df['A']).mean()
print(mean)
mean = df.groupby("A")["D"].mean() #如果不指定列,會計算所有列的均值
print(mean)# transform用于在分組操作中對每個組內的數據進行轉換,并將結果合并回原始 DataFrame
mean = df.groupby("A")["D"].transform(lambda x: x.mean())
# print(mean)
df['C_mean'] = mean
print(df)

THE END

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

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

相關文章

SpringMVC的請求-文件上傳

文件上傳客戶端三要素 1. 表單項type“file” 2. 表單的提交方式是post 3. 表單的enctype屬性是多部分表單形式&#xff0c;及enctype“multipart/form-data” <% page contentType"text/html;charsetUTF-8" language"java" %> <html> <he…

在Ubuntu系統如何讓MySQL服務器支持遠程連接

目錄 問題描述 解決方案 步驟一&#xff1a;檢查MySQL配置文件 ?編輯 步驟二&#xff1a;修改bind-address參數 ?編輯 步驟三&#xff1a;重啟MySQL服務 步驟四&#xff1a;驗證更改 步驟五&#xff1a;檢查防火墻設置 步驟六&#xff1a;測試遠程連接 注意事項 …

JSON工具-JSONUtil

對象轉JSON JSONUtil.toJsonStr可以將任意對象&#xff08;Bean、Map、集合等&#xff09;直接轉換為JSON字符串。 如果對象是有序的Map等對象&#xff0c;則轉換后的JSON字符串也是有序的。 //region 處理POST請求&#xff0c;將TreeMap轉換為JSON字符串返回/*** 處理POST請求…

死鎖 手撕死鎖檢測工具

目錄 引言 一.理論聯立 1.死鎖的概念和原因 2.死鎖檢測的基本思路 3.有向圖在死鎖檢測中的應用 二.代碼實現案例&#xff08;我們會介紹部分重要接口解釋&#xff09; 1.我們定義一個線性表來存線程ID和鎖ID 2.表中數據的查詢接口 3.表中數據的刪除接口 4.表中數據的添…

Java 中 SQL 注入問題剖析?

一、引言? 在當今數字化時代&#xff0c;數據是企業和組織的核心資產之一。許多應用程序都依賴于數據庫來存儲和管理數據&#xff0c;而 Java 作為一種廣泛使用的編程語言&#xff0c;常被用于開發與數據庫交互的應用程序。然而&#xff0c;SQL 注入這一安全漏洞卻如同隱藏在…

安全理念和安全產品發展史

從安全理念的發展歷史來看,技術與產品的演進始終圍繞 “威脅對抗” 與 “業務適配” 兩大核心展開。以下從七個關鍵階段解析安全技術與產品的發展脈絡,并結合最新實踐與未來趨勢提供深度洞察: 一、密碼學奠基階段(1970s 前) 安全理念:以 “信息保密” 為核心,防御手段…

【Ansible自動化運維】二、Playbook 深入探究:構建復雜自動化流程

? 在 Ansible 自動化運維體系中&#xff0c;Playbook 是極為關鍵的部分。它允許我們以一種結構化、可重復的方式定義和執行一系列復雜的任務&#xff0c;從而構建高效的自動化流程。本篇文章將深入探究 Ansible Playbook 的各個方面&#xff0c;助您掌握構建復雜自動化…

springboot項目中常用的工具類和api

在Spring Boot項目中&#xff0c;開發者通常會依賴一些工具類和API來簡化開發、提高效率。以下是一些常用的工具類及其典型應用場景&#xff0c;涵蓋 Spring 原生工具、第三方庫&#xff08;如Hutool、Guava&#xff09; 和 Java 自帶工具。 1. Spring Framework 自帶工具類 (…

23種設計模式-行為型模式-模板方法

文章目錄 簡介場景解決代碼關鍵優化點 總結 簡介 模板方法是一種行為設計模式&#xff0c;它在超類中定義了一個算法的框架&#xff0c;允許子類在不修改結構的情況下重寫算法的特定步驟。 場景 假如你正在開發一款分析文檔的數據挖掘程序。用戶需要向程序輸入各種格式&…

解決Long類型前端精度丟失和正常傳回后端問題

在 Java 后端開發中&#xff0c;可能會遇到前后端交互過程中 Long 類型精度丟失的問題。尤其是在 JavaScript 中&#xff0c;由于其 Number 類型是雙精度浮點數&#xff0c;超過 16 位的 Long 類型值就會發生精度丟失。 問題背景 假設有如下實體類&#xff1a; public class…

PowerPhotos:拯救你的Mac照片庫,告別蘋果原生應用的局限

如果你用Mac管理照片&#xff0c;大概率被蘋果原生「照片」應用折磨過——無法真正并行操作多個圖庫。每次切換圖庫都要關閉重啟&#xff0c;想合并照片得手動導出導入&#xff0c;重復文件更是無處可逃…… 直到我發現了 PowerPhotos&#xff0c;這款專為Mac設計的照片庫管理…

android 14.0 工廠模式 測試音頻的一些問題(高通)

1之前用tinycap&#xff0c;現在得用agmcap 執行----agmcap /data/test.wav -D 100 -d 101 -i CODEC_DMA-LPAIF_RXTX-TX-3 -T 3 報錯1 agmcap data/test.wav -D 100 -d 101 -i CODEC_DMA-LPAIF_RXTX-TX-3 -T 3 Failed to open xml file name /vendor/etc/backend_co…

以庫存系統為核心的ERP底層架構設計

在企業資源計劃&#xff08;ERP&#xff09;系統中&#xff0c;庫存系統常被視為基礎模塊。但在現代企業的數字化進程中&#xff0c;庫存系統不僅僅是一個模塊&#xff0c;它已經逐步演化為驅動整個ERP生態的核心引擎。本文從架構設計的角度&#xff0c;探討為何庫存系統應被置…

辛格迪客戶案例 | 北京舒曼德醫藥實施電子合約系統(eSign)

01 北京舒曼德醫藥科技開發有限公司&#xff1a;醫藥科技的數字化先鋒 北京舒曼德醫藥科技開發有限公司&#xff08;以下簡稱“舒曼德醫藥”&#xff09;作為國內醫藥科技領域的領軍企業&#xff0c;致力于創新藥物的研發、臨床試驗和市場推廣。公司以“科技興藥、質量為先、服…

【UE5】RTS游戲的框選功能+行軍線效果實現

目錄 效果 步驟 一、項目準備 二、框選NPC并移動到指定地點 三、框選效果 效果 步驟 一、項目準備 1. 新建一個俯視角游戲工程 2. 新建一個pawn、玩家控制器和游戲模式,這里分別命名為“MyPawn”、“MyController”和“MyGameMode” 3. 打開“MyGameMode”,設置玩家…

vim定位有問題的腳本/插件的一般方法

在使用vim的過程中可能會遇到一些報錯或其他不符合預期的情況&#xff0c;本文介紹一些我自己常用的定位有問題腳本/插件的方法&#xff08;以下方法同樣適用于neovim&#xff09; 執行了某些命令的情況 這種情況最簡單&#xff0c;使用:h 命令&#xff0c;如果插件有文檔的話…

智能驅動教育變革:人工智能在高中教育中的實踐路徑與創新策略

一、引言 隨著信息技術的飛速發展&#xff0c;人工智能&#xff08;Artificial Intelligence, AI&#xff09;已成為推動社會進步的重要力量。在教育領域&#xff0c;人工智能的應用正逐漸改變著傳統的教學模式和方法&#xff0c;為教育現代化注入了新的活力。高中教育作為教育…

VLAN(虛擬局域網)

一、vlan概述 VLAN(virtual local area network)是一種通過邏輯方式劃分網絡的技術&#xff0c;允許將一個物理網絡劃分為多個獨立的虛擬網絡。每一個vlan是一個廣播域&#xff0c;不同vlan之間的通信需要通過路由器或三層交換機 [!注意] vlan是交換機獨有的技術&#xff0c;P…

spring-cloud-starter-alibaba-seata使用說明

Spring Cloud Alibaba Seata 使用說明 spring-cloud-starter-alibaba-seata 是 Spring Cloud Alibaba 生態中用于集成分布式事務框架 Seata 的核心組件&#xff0c;支持 AT&#xff08;自動補償&#xff09;、TCC&#xff08;手動補償&#xff09; 等模式。 一、依賴配置 添加…

每日一題(小白)暴力娛樂篇23

由題意得知給我們一串數字&#xff0c;我們每次交換兩位&#xff0c;最少交換多少次成功得到有順序的數組。我們以平常的思維去思考&#xff0c;加入給你一串數字獲得最少的交換次數&#xff0c;意味著你的交換后續基本不會變&#xff0c;比如說2 1 3 5 4 中1與2交換后不變&…