python pandas dataframe常用數據處理總結

最近一直在做數據處理相關的工作,有幾點經常遇到的情況總結如下:

  1. 數據中存在為空數據如何處理
處理方式1:丟棄數據行
# 實現方式1
data = data.dropna(subset=['id']) # 若id列中某行數值為空,丟棄整行數據
# 實現方式2
data = df[df['id'].notna()]處理方式2:填充,定值填充或插值填充
data['value'] = data['value'].fillna(0.0) # 使用0.0對value列中空值進行填充
  1. 丟棄某行某列
# 如果rn列存在,丟棄該列
if 'rn' in df.columns:df = df.drop('rn', axis=1)  # axis控制行列# 若直接在原數據做操作,需設置inplace參數df.drop('rn', axis=1inplace=True)
  1. 如何對某列中字符串數據進行批量操作
# 設time中數據為12:34這種類型
df['time'].str.split(':',expand=True).astype(int) 
# expand參數用以將分割的字符串展開為單獨的列,astype用于轉換數據類型
  1. 數據中不存在某列,添加列
# 添加有值的列如何做
data = {'A': ['item1', 'item2', 'item3', 'item4'],'B': ['0.1', '0.2', '0.3', '0.4']
}
df = pd.DataFrame(data)# 增加一列'id'字段, 并選擇特定行賦值
df.loc[[True, False, True, True],'id'] = ['1', '2', '3']
# 不支持同時加兩列,只能加單列# 添加無值的列,再進行處理
df['add'] = np.nan
df['add'] = np.where(df['hour'] >= 1000, 1, 0) 
df['hour'] = np.where(df['hour'] >= 1000, df['hour'] - 1000, df['hour'])
  1. 一些日期處理函數
# pd.to_datetime
# 將day轉為datetime格式
tmp_day = pd.to_datetime(df['day'], format='%Y%m%d')# pd.to_timedelta
timestamp = tmp_day + pd.to_timedelta(df['hour'], unit='h') + pd.to_timedelta(df['min'],unit='m') + pd.to_timedelta(df['add'], unit='D')
  1. 一些處理函數
# id分組中,源數據只有一行batch字段有填充,函數實現將batch拓展填充到各數據行
df['batch'] = df.groupby('id')['batch'].transform(lambda x: x.fillna(method='ffill').fillna(method='bfill'))
# 首先通過groupby函數根據id列對數據進行分組,然后對每個分組使用transform函數。
# transform函數中的lambda函數使用fillna方法先向前(ffill)填充分組中的np.nan值,
# 如果某一分組中的第一行為np.nan,則之后再向后(bfill)填充。# 對每個id分組,執行apply操作,運行數據處理函數,實現功能
def trans(df):df = df.groupby('id').apply(lambda group: group.apply(process_column))return df
def process_column(col):# 若數據列名中存在period或為a b c,將該組數據用;連接起來返回if 'period' in col.name or col.name in ['a','b','c']:return ';'.join(str(v) for v in col)else:# 其余數據直接做unique返回return col.unique()

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

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

相關文章

Ant Design Vue 年選擇器

文章目錄 參考文檔效果展示實現過程 參考文檔 提示:這里可以添加本文要記錄的大概內容: DatePicker 日期選擇框 大佬:搬磚小匠(Ant Design vue 只選擇年) 提示:以下是本篇文章正文內容,下面案…

光標雖小,但是能讓其憑空消失的原因不少,需要仔細檢查

在Windows 10中遇到鼠標光標有問題嗎?我們已經為你提供了所需的修復程序。 光標消失的原因 光標不斷消失可能是由各種原因引起的,因此有可能找到各種各樣的解決方案。光標可能根本無法工作,或者在特定情況下可能會消失。鼠標按鈕甚至可能在光標隱藏時工作。 以下是用戶注…

如何驗證一個URL是否合法

在JavaScript中,可以使用正則表達式(RegExp)或使用內置的URL對象來校驗一個URL。下面是一些常用的方法以及對應的代碼示例: 使用正則表達式進行校驗: function validateURL(url) {const pattern /^(https?:\/\/)?…

使用Caliper對Fabric地basic鏈碼進行性能測試

如果你需要對fabric網絡中地合約進行吞吐量、延遲等性能進行評估,可以使用Caliper來實現,會返回給你一份網頁版的直觀測試報告。下面是對test-network網絡地basic鏈碼地測試過程。 目錄 1. 建立caliper-workspace文件夾2. 安裝npm等3. calipe安裝4. 創建…

使用TransBigData組件實現個人手機定位功能

目錄 一、引言 二、技術背景 三、實現邏輯 四、代碼實現 五、優化與注意事項: 六、總結 摘要:隨著現代社會對定位服務的需求日益增加,實現個人手機定位功能成為了開發者的研究熱點。本文詳細闡述了如何使用Python和TransBigData組件實現…

Python 從入門到精通 學習筆記 Day03

Python 從入門到精通 第三天 今日目標 流程控制語句、退出循環、練習學習的內容 一、流程控制語句 流程控制的三種方式:順序語句、雙分支語句、循環語句 雙分支語句 Python 的雙分支語句使用if-else語句實現。 其語法結構如下: if條件:#如果條作為真&#xff…

Facebook廣告報告指標CPC

在Facebook廣告中,CPC可以作為一個關鍵指標來評估廣告效果和投資回報。較低的CPC意味著廣告主能以更低的價格獲得更多的點擊量,從而降低廣告投放成本。而較高的CPC可能暗示著廣告主需要更大的預算才能獲得相同數量的點擊。本文小編將講講Facebook廣告報告…

k8s上安裝KubeSphere

安裝KubeSphere 前置環境安裝nfs-server文件系統配置nfs-client配置默認存儲創建了一個存儲類metrics-server集群指標監控組件 安裝KubeSphere執行安裝查看安裝進度 前置環境 下載配置我都是以CentOS 7.9 安裝 k8s(詳細教程)文章的服務器作為示例,請自行修改為自己的…

2024年軟考科目怎么選?(選科指引)

新手在準備報考軟考時,都會遇到這樣的一個問題——科目這么多,我適合考什么?要想知道自己適合報什么科目,就需要了解每個科目是什么,考什么等一系列的問題。今天給大家分享一下。 軟考包含什么科目? 軟考…

facebook廣告相比谷歌廣告的優勢

Facebook廣告相比谷歌廣告的優勢主要體現在以下方面: 用戶數據豐富:Facebook擁有龐大的用戶數據,包括人口、興趣、行為等多個維度,這些數據可以幫助廣告主更準確地定位到目標受眾。相比之下,谷歌廣告的用戶數據相對較…

android快速網絡請求之android-networking

今天介紹一個知道的人不多的庫,寫個簡單的頁面什么的。用起來很爽?如果你疑惑那么多開源的網絡庫為啥不用? 因為這個簡單方便。拿來就用。經過這幾天的實踐。確實可以。推薦一下 如果你需要 GITHUB 首先。引入依賴 implementation com.ami…

MySQL 數據遷移要點

目錄 1. 相同版本的遷移 2. 不用版本的遷移 3. 不同數據庫的遷移 數據庫遷移就是把數據從一個系統移動到另一個系統上,遷移過程其實就是在源數據庫備份和目標數據庫恢復的過程組合。遷移的原因是多種多樣的,比如: 需要安裝新的數據庫服務…

elasticsearch中LessThen遇到的坑

開發中&#xff0c;使用到LessThen-小于某個參數的邏輯查詢&#xff0c;如下&#xff1a; /// <summary> /// 查詢狀態已發布&#xff08;狀態小于2&#xff09;的政策要聞分頁 /// </summary> /// <param name"input"></param> /// <re…

使用OkHttp上傳本地圖片及參數

下面以一個例子來講解在項目中如何使用OKHttp來對本地圖片做個最簡單的上傳功能&#xff0c;基本上無封裝&#xff0c;只需要簡單調用便可&#xff08;對于OKHttp的引入不再單獨做介紹&#xff09;。 1&#xff1a;構建上傳圖片附帶的參數&#xff08;params&#xff09; Map…

2.vue學習筆記(目錄結構+模板語法+屬性綁定)

1.目錄結構 1.vscode ——VSCode工具的配置文件夾 2.node_modules ——Vue項目的運行依賴文件夾 3.public ——資源文件夾&#xff08;瀏覽器圖標&#xff09; 4.src ——源碼文件夾 5..gitgnore ——git忽略文件 6.index.html ——如果html文件 7.package.json —…

基于SpringBoot+Vue學生成績管理系統前后端分離(源碼+數據庫)

一、項目簡介 本項目是一套基于SpringBootVue學生成績管理系統&#xff0c;主要針對計算機相關專業的正在做bishe的學生和需要項目實戰練習的Java學習者。 包含&#xff1a;項目源碼、數據庫腳本等&#xff0c;該項目可以直接作為bishe使用。 項目都經過嚴格調試&#xff0c;確…

ElasticSearch中的分析器是什么?

在Elasticsearch中&#xff0c;分析器&#xff08;Analyzer&#xff09;是一個用于文本分析的重要組件。它定義了如何將文本分解成單詞和子詞&#xff0c;這對于索引和搜索是非常重要的。 在Elasticsearch中&#xff0c;分析器定義了如何將文本轉換為可以被索引和搜索的形式。…

虛幻學習筆記10—C++函數與藍圖的通信

一、前言 除了上一章C變量與藍圖通信講的變量能與藍圖通信外&#xff0c;還有函數和枚舉也可以和藍圖通信。函數的關鍵字為”UFUNCTION“、枚舉的關鍵字為”UENUM“。 二、實現 2.1、BlueprintCallable藍圖中調用 該函數時帶執行的&#xff0c;帶入如下。編譯成功后在藍圖中輸…

macOS 獲取文件夾大小

macOS 獲取文件夾大小 獲取文件夾大小的擴展如下&#xff1a; extension URL {var fileSize: Int? { // in bytesdo {let val try self.resourceValues(forKeys: [.totalFileAllocatedSizeKey, .fileAllocatedSizeKey])return val.totalFileAllocatedSize ?? val.fileAll…

來自Sui的溫馨建議:保護您的Web3私鑰

當您安裝一個錢包并創建Sui賬戶時&#xff0c;錢包包含一個公鑰和一個私鑰。保護好私鑰的安全非常重要&#xff0c;從而可以保護您的Sui資產&#xff0c;包括錢包中的任何tokens。 公鑰加密技術是幾十年前開發的&#xff0c;是當今互聯網上大多數安全交易的基礎&#xff0c;包…