awk結合正則匹配

来源:http://www.cnblogs.com/bymo/archive/2017/08/03/7246353.html
-Advertisement-
Play Games

利用awk分析data.csv中label列各取值的分佈. 在終端執行head data.csv查看數據: 因為行內包含換行符的項會被分成多行(例如上面的第3,4行),所以需要結合正則匹配 -F ',' 表示根據逗號分隔; $(NF-1)~/^[A-Z][0-9]/ 表示分隔後的倒數第二項(在此指取 ...


利用awk分析data.csv中label列各取值的分佈.

在終端執行head data.csv查看數據:

1 name,business,label,label_name
2 滄州光松房屋拆遷有限公司,舊房拆遷、改造;物業服務(依法須經批准的項目,經相關部門批准後方可開展經營活動),E4,建築裝飾和其他建築業
3 上海托帕化工材料有限公司,"從事化工材料領域內的技術開發、技術轉讓、技術咨詢、技術服務、化工原材料及產品(除危險化學品、監控化學品、煙花爆竹、易制毒化學品、民用爆炸物品)、機械設備、電子產品、橡塑製品、機電設備、五金建材、日用百貨的銷售,從事貨物及技術的進出口業務。
4 【依法須經批准的項目,經相關部門批准後方可開展經營活動】",F2,零售業
5 上海利昂節能燈具有限公司,節能燈管,節能燈配件,電子鎮流器,燈具,電子產品,生產,加工,C26,電氣機械和器材製造業
6 裕福支付有限公司海南分公司,"企業管理咨詢,電腦數據處理,應用軟體技術服務,會議服務,經濟信息咨詢",L2,商務服務業
7 龍川縣聯生農貿市場管理中心,自建農貿市場管理服務,L2,商務服務業

 

因為行內包含換行符的項會被分成多行(例如上面的第3,4行),所以需要結合正則匹配

cat data.csv | awk -F ',' '{if(NF>2 && $(NF-1)~/^[A-Z][0-9]/) {print $(NF-1)}}' | sort | uniq -c | sort -n -r > label_distribution.txt

-F ',' 表示根據逗號分隔;

$(NF-1)~/^[A-Z][0-9]/ 表示分隔後的倒數第二項(在此指取label列的值)需滿足指定的正則匹配規則

 

另外,利用Pandas庫對csv格式的文件做統計也很方便.

用pandas讀取數據:

 

print df.label.value_counts()
"""
F1     622844
L2     614734
F2     493420
A1     102186
...
"""

value_counts()方法統計序列所有元素出現次數,併進行倒序.

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 實驗內容: (1)主機IP (2)要求 一 伺服器端配置 1安裝nfs utils 軟體包 2編輯配置文件 共用目錄為/data/web 3創建共用目錄 4開啟服務 二 客戶端配置 1 掛載 (1)新建掛載的目錄 (2)掛載伺服器共用的目錄(/data/web/)至本地/var/www/html 2 ...
  • 中斷與中斷處理 何為中斷? + 一種由設備發向處理器的電信號 + 中斷不與處理器時鐘同步,隨時可以發生,內核隨時可能因為中斷到來而被打斷。 + 每一個中斷都有唯一一個數字標誌,稱之為中斷線(IRQ) + 異常是由軟體產生,與處理器時鐘同步。 中斷處理程式 + 由內核調用來響應中斷 + 運行於中斷上下 ...
  • Linux文件系統結構 通過下麵兩張圖片來認識一下Linux文件系統的結構。 當前工作目錄 實踐: 文件名稱 這些規則不僅適用於文件,也適用於文件夾。 實踐: ls命令 ls命令表示列出當前工作目錄的內容,包括文件和文件夾。相當於windows中的文件瀏覽器。 最常用是'ls -a'和'ls -l' ...
  • Sublime Text是一個代碼編輯器,我主要是用它來編輯python。下麵就來簡單說明下它在linux的安裝過程吧! 1.添加sublime text3的倉庫 首先按下快捷鍵ctrl+alt+t打開終端; 在終端輸入:sudo add-apt-repository ppa:webupd8team ...
  • 在使用FastQC之後,如果我們發現了一些問題(序列質量不高),那麼我們該使用什麼樣的工具,去解決這些問題呢? fastx Toolkit是包含處理fastq/fasta文件的一系列的工具,它是基於java開發的,我們高通量測序最常用到的是使用這個軟體進行reads的裁剪(trim) FASTQ-t ...
  • 前面說了,我們要儘量少用GNOME圖形界面,而應該以使用BASH命令行為主。 SHELL Shell是操作系統內核的殼,因為我們不能直接操作系統的內核Kernel,只能通過Shell去操作,Shell可以簡單理解為用戶向操作系統發送指令的代理。 看下麵兩張圖。 GNOME指的是圖形界面,BASH就是 ...
  • 一、編譯安裝Apache 1、解決依賴關係 (1)編譯安裝apr (2)編譯安裝apr-util (3)httpd-2.4.27編譯過程也要依賴於pcre-devel軟體包,需要事先安裝 (4)創建用戶,組 2、編譯安裝httpd-2.4.27 3、配置Apache 二、編譯安裝Mysql 1、準備 ...
  • 一.背景由來 需求經常變化,每次都要發給相關人員查看,本地查看還需要設置相容性,太麻煩了。因此考慮是否可以利用伺服器來實時更新原型文件了。 二.相關準備 首先需要一臺閑置伺服器,(其實只要幾g的空間足夠。) 其他就是相關文件準備了,Tomcat,jdk等等。 三.具體搭建 1.安裝jdk a.在官網 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...