1分鐘帶你搞定Pandas DataFrame運算

1. DataFrame之間的運算

  • 在運算中自動對齊不同索引的數據

  • 如果索引不對應,則補NaN

  • DataFrame沒有廣播機制

導包

# 導包import numpy as npimport pandas as pd

創建 DataFrame df1 不同人員的各科目成績,月考一

# 創建DataFrame二維數組df1 = pd.DataFrame(    data = np.random.randint(10,100,size=(3,3)),    index = ["小明","小紅","小黃"],    columns = ["語文","數學","英語"])df1

語文數學英語
小明592658
小紅147453
小黃492899

創建 DataFrame df2 不同人員的各科目成績,月考二

df2 = pd.DataFrame(    data = np.random.randint(10,100,size=(3,3)),    index = ["小明","小紅","小黃"],    columns = ["語文","數學","英語"])df2

語文數學英語
小明557113
小紅424955
小黃346836

DataFrame和標量之間的運算

df1?+?100

語文數學英語
小明159126158
小紅114174153
小黃149128199
df1 - 100

語文數學英語
小明-41-74-42
小紅-86-26-47
小黃-51-72-1

df1 * 100 

語文數學英語
小明590026005800
小紅140074005300
小黃490028009900

df1 / 100

語文數學英語
小明0.590.260.58
小紅0.140.740.53
小黃0.490.280.99

df1 % 10

語文數學英語
小明968
小紅443
小黃989

df1 ** 2

語文數學英語
小明34816763364
小紅19654762809
小黃24017849801

DataFrame之間的運算

# 必須匹配行和列的索引df1?+?df2

語文數學英語
小明8450116
小紅85144145
小黃121115179

使用 .add() 函數,填充數據

df3?=?pd.DataFrame(    data = np.random.randint(10,100,size=(4,4)),    index = ["小明","小紅","小黃","小綠"],    columns = ["語文","數學","英語","物理"])display(df1,df3)?

語文數學英語
小明592658
小紅147453
小黃492899

語文數學英語物理
小明30405959
小紅46725696
小黃25209973
小綠92784144

df1?+?df3?

數學物理英語語文
小明66.0NaN117.089.0
小紅146.0NaN109.060.0
小綠NaNNaNNaNNaN
小黃48.0NaN198.074.0
# 先填充0,再相加df1.add(df3,fill_value=0)

數學物理英語語文
小明66.059.0117.089.0
小紅146.096.0109.060.0
小綠78.044.041.092.0
小黃48.073.0198.074.0

# 除法df1.divide(df3,fill_value=2)

數學物理英語語文
小明0.6500000.0338980.9830511.966667
小紅1.0277780.0208330.9464290.304348
小綠0.0256410.0454550.0487800.021739
小黃1.4000000.0273971.0000001.960000

2. Series與DataFrame之間的運算

  • 使用Python操作符:以行為單位操作(參數必須是行),對所有行都有效

    • 類似于NumPy中二維數組與一維數組的運算,但可能出現NaN

  • 使用Pandas操作函數:

    • axis=0:以列為單位操作(參數必須是列),對所有列都有效

    • axis=1:以行為單位操作(參數必須是行),對所有行都有效

s = pd.Series([100,10,1],index=df1.columns)s
語文    100
數學     10
英語      1
dtype: int64
df1?+?s

語文數學英語
小明1593659
小紅1148454
小黃14938100
?

df1.add(s)

語文數學英語
小明1593659
小紅1148454
小黃14938100

# axis:(0 or "index",1 or "columns"),默認為列df1.add(s,axis="columns")

語文數學英語
小明1593659
小紅1148454
小黃14938100

df1.add(s,axis=1)?

語文數學英語
小明1593659
小紅1148454
小黃14938100

s = pd.Series([100,10,1],index=df1.index)s
小明    100
小紅     10
小黃      1
dtype: int64
# 行df1.add(s,axis=0)

語文數學英語
小明159126158
小紅248463
小黃5029100

df1.add(s,axis="index")

語文數學英語
小明159126158
小紅248463
小黃5029100

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

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

相關文章

想要修改Excel表格內容,怎么移除編輯權限?

在使用Excel進行數據處理和管理時,我們經常會遇到需要保護工作表以防止誤操作的情況。有時可能碰到“被保護單元格不支持此功能”的提示,本文將詳細介紹這個問題的解決方案,幫助你取消單元格保護,使用所需的功能。 一、取消單元格…

leetcode刷題記錄:前綴和

https://labuladong.online/algo/problem-set/perfix-sum/#%E8%A7%A3%E6%B3%95%E4%BB%A3%E7%A0%81-3 適用范圍:快速、頻繁地計算一個索引區間內的元素之和 303 區域和檢索:數組不可變 https://leetcode.cn/problems/range-sum-query-immutable/ class …

【Unitydemo制作】音游制作—排行榜邏輯Json存儲

👨?💻個人主頁:元宇宙-秩沅 👨?💻 hallo 歡迎 點贊👍 收藏? 留言📝 加關注?! 👨?💻 本文由 秩沅 原創 👨?💻 收錄于專欄:就業…

GQL 來了!ISO/IEC 正式發布 GQL 數據庫國際標準!

歷時四年籌備,超過20個國家的標準和技術專家參與制定,ISO/IEC GQL (圖查詢語言)標準于2024年4月12日正式發布! 作為國際標準化組織(ISO)繼 1987年 發布SQL后,唯一發布的數據庫查詢語…

瑞米派Ubuntu系統移植指南-米爾RemiPi

1.概述 Linux系統平臺上有許多開源的系統構建框架,這些框架方便了開發者進行嵌入式系統的構建和定制化開發,目前比較常見的有Buildroot, Yocto, OpenEmbedded等等。 同時更多的傳統的桌面系統也加入到嵌入式環境體系中,如Ubuntu&#xff0c…

Marin說PCB之POC電路layout設計仿真案例---03

今天天中午午休的時候,我剛要打開手機的準備刷抖音看無憂傳媒的學生們的“學習資料”的時候,看到CSDN -APP上有提醒,一看原來是一位道友發的一個問題: 本來小編最近由于剛剛從國外回來,手上的項目都已經結束了&#xf…

如何制作正方形,給 placeholder 換顏色,多行省略號,純css小三角,清除浮動,清除 margin,隱藏滾動條,隱藏 number 小圖標

https://www.npmjs.com/package/sass-runtime-tool yarn add sass-runtime-tool -D # or npm i -D sass-runtime-tool use "sass-runtime-tool/all.scss" as *;// 改變 placeholder 的顏色和大小 .input {include placeholder(red) {font-size: 12px;} } /* 或者 *…

一個模板元函數來檢查一個類是否有一個特定的成員

通過創建一個模板元函數來檢查一個類是否有一個特定的成員。以下是一個例子&#xff1a; #include <type_traits>template<typename T, typename void> struct has_type_member : std::false_type {};template<typename T> struct has_type_member<T, s…

Matlab:音頻處理

用Matlab繪制一段音頻信號在時域上的波形圖&#xff0c;然后用低通濾波器濾掉噪音并再次繪制 1、導入音頻文件 filename X:\1.mp3; % 替換為你的音頻文件路徑 [x, Fs] audioread(filename); 2、獲取音頻信號長度 len length(x); 3、計算時間軸 t (0:len-1) / Fs; 4、…

小程序properties默認值定義及父子組件的傳值

因經常寫vue&#xff0c;很久沒寫小程序&#xff0c;容易串頻道&#xff0c;現記錄一下小程序的組件用法、監聽傳入值及父子傳值方式 首先小程序中傳值是沒有&#xff1a;(冒號)的&#xff0c;其次properties中定義默認值不需要寫default 1.自定義組件中&#xff0c;首先json…

OSPF原理(1)

一、OSPF介紹 OSPF&#xff08;Open Shortest Path First&#xff0c;開放最短路徑優先&#xff09;協議作為一種基于鏈路狀態的路由協議&#xff0c;它為網絡中的路由器提供了一種高效、可靠的方式來共享路由信息&#xff0c;并計算出最短路徑。 特點&#xff1a; 收斂速度快…

踩坑——紀實

開發踩坑紀實 1 npm安裝1.1 查看當前的npm鏡像設置1.2 清空緩存1.3 修改鏡像1.4 查看修改結果1.5 重新安裝vue 2 VScode——NPM腳本窗口找不到3 springboot項目中updateById()失效4 前端跨域4.1 后端加個配置類4.2 CrossOrigin注解 5 路由出口6 springdoc openapi3 swagger3文件…

C語言函數遞歸

文章目錄 一、遞歸1.遞歸的概念2.遞歸的思想3.遞歸的限制條件 二、遞歸的一些典型例子1.求一個數的階乘2.順序打印一個整數的每一位3.漢諾塔4.青蛙跳臺階5斐波那契數列遞歸和迭代的對比 一、遞歸 1.遞歸的概念 遞歸是學習C語言函數繞不開的一個話題&#xff0c;那什么是遞歸呢…

【算法刷題day56】 Leetcode:647. 回文子串、516. 最長回文子序列

文章目錄 Leetcode 647. 回文子串解題思路代碼總結 Leetcode 516. 最長回文子序列解題思路代碼總結 草稿圖網站 java的Deque Leetcode 647. 回文子串 題目&#xff1a;647. 回文子串 解析&#xff1a;代碼隨想錄解析 解題思路 斜上三角&#xff0c;從左下往上遍歷&#xff0c…

【代碼隨想錄】動態規劃之完全背包問題與打家劫舍問題

前言 更詳細的在大佬的代碼隨想錄 (programmercarl.com) 本系列僅是簡潔版筆記&#xff0c;為了之后方便觀看 完全背包 for(int i 0; i < weight.size(); i) { // 遍歷物品for(int j weight[i]; j < bagWeight; j) { // 遍歷背包容量dp[j] max(dp[j], dp[j - weigh…

ElementPlus Steps步驟條插槽 v-slot:title

<el-steps finish-status"success"><el-stepv-for"item in uniqueReverseArr":status"item.status 2? success: item.status 3? error: item.status 1? finish: process"click.native"stepClick(item)"><templat…

PyTorch中Tensor簡介

PyTorch中所有的操作都是基于Tensor&#xff08;張量&#xff09;的&#xff0c;因此理解張量的含義并能夠自由創建張量是十分必要的。 張量是PyTorch中最基本的操作對象。我們可以用數學中的概念來輔助理解一下張量&#xff0c;如圖5-1所示。 標量&#xff08;Scalar&#x…

c#數據庫的增刪改查

** 安裝數據庫包 ** 在使用 SQLite 數據庫時&#xff0c;你需要安裝適當的 NuGet 包來提供與 SQLite 的集成。 1.打開 Visual Studio 中的你的項目 2.在頂部菜單欄中選擇 “項目” -> “管理 NuGet 包” 3.在 NuGet 管理器中搜索 “System.Data.SQLite” 4.找到適合你項目…

【openlayers系統學習】1.1渲染GeoJSON,添加link交互

一、渲染GeoJSON 在進入編輯之前&#xff0c;我們將看一下使用矢量源和圖層進行基本要素渲染。Workshop在 data? 目錄中包含一個 countries.json? GeoJSON文件。我們首先加載該數據并將其渲染在地圖上。 首先&#xff0c;編輯 index.html? 以便向地圖添加深色背景&#xf…

Vue 組件的生命周期鉤子有哪些用途是什么

Vue 組件的生命周期鉤子提供了在不同階段執行特定邏輯的機會&#xff0c;這些鉤子在組件的創建、掛載、更新、銷毀等過程中被調用。以下是每個生命周期鉤子的常見用途&#xff1a; beforeCreate 用途&#xff1a;由于在這個階段&#xff0c;組件的 data、computed、methods 和…