2018.03.26 Python-Pandas 字元串常用方法

来源:https://www.cnblogs.com/jxzhu/archive/2018/03/26/8654096.html
-Advertisement-
Play Games

結果: 0 jack 1 jill 2 jease 3 feank dtype: object Index([' Column A', ' Column B'], dtype='object') ['jack ' 'jill' 'jease ' 'feank'] [' jack' 'jill' ' ...


  import numpy as np
  import pandas as pd

1
#字元串常用方法 - strip 2 s = pd.Series([' jack ','jill',' jease ','feank']) 3 df = pd.DataFrame(np.random.randn(3,2),columns=[' Column A',' Column B'],index=range(3)) 4 print(s) 5 print(df.columns) 6 7 print('----') 8 print(s.str.lstrip().values)#去掉左邊的空格 9 print(s.str.rstrip().values)#去掉右邊的空格 10 df.columns = df.columns.str.strip() 11 print(df.columns)

結果:

0      jack 
1       jill
2     jease 
3      feank
dtype: object
Index([' Column A', ' Column B'], dtype='object')
----
['jack ' 'jill' 'jease ' 'feank']
['  jack' 'jill' ' jease' 'feank']
Index(['Column A', 'Column B'], dtype='object')
#字元串常用方法 - replace  替換字元串
df = pd.DataFrame(np.random.randn(3,2),columns=[' Columns A','  Columns B'],index = range(3))
print(df.columns)
df.columns = df.columns.str.replace(' ','-')
print(df.columns)

df.columns = df.columns.str.replace('-','hehe',n=1)#表示用hehe去替換第一個' '
print(df.columns)

結果:

Index([' Columns A', '  Columns B'], dtype='object')
Index(['-Columns-A', '--Columns-B'], dtype='object')
Index(['heheColumns-A', 'hehe-Columns-B'], dtype='object')
#字元串常用方法 - split、rsplit  分成列表list的形式
s = pd.Series(['a,b,c','1,2,3',['a,,,c'],np.nan])
print(s)
print('----')
print(s.str.split(','))
print('----')
#類似於字元串的split
print(s.str.split(',')[0])#索引第一行
print(s.str.split(',').str[0])#第一列
print(s.str.split(',').str.get(1))#第二列
#可以使用get或者[]符號訪問拆分列表的元素

print(s.str.split(',',expand=True,n=1))#n為拓展數量
print(s.str.rsplit(',',expand=True,n=1))#rsplit 從右到左分
#expand可以擴展此操作來返回DataFrame
#n參數限制分數
#rsplit類似於split,反向工作,即從字元串的末尾到字元串開頭
print('dataframe:')
df = pd.DataFrame({'key1':['a,b,c','1,2,3',[',,,']],
                   'key2':['a-b-c','1-2-c',[',-,-,']]})
print(df['key2'])
print(df['key2'].str.split('-'))

結果:
0      a,b,c
1      1,2,3
2    [a,,,c]
3        NaN
dtype: object
----
0    [a, b, c]
1    [1, 2, 3]
2          NaN
3          NaN
dtype: object
----
['a', 'b', 'c']
0      a
1      1
2    NaN
3    NaN
dtype: object
0      b
1      2
2    NaN
3    NaN
dtype: object
     0    1
0    a  b,c
1    1  2,3
2  NaN  NaN
3  NaN  NaN
     0    1
0  a,b    c
1  1,2    3
2  NaN  NaN
3  NaN  NaN
dataframe:
0      a-b-c
1      1-2-c
2    [,-,-,]
Name: key2, dtype: object
0    [a, b, c]
1    [1, 2, c]
2          NaN
Name: key2, dtype: object

#字元串索引
s = pd.Series(['A','b','C','bbhello','123',np.nan,'hj'])
df = pd.DataFrame({'key1':list('abcdef'),
                   'key2':['hee','fv','w','hjja','123',np.nan]})
print(s,'\n-----')
print(s.str[0])#取第一個字元串
print(s.str[:2])#取前2個字元
print('-----')
print(df['key2'].str[0])
#str之後和字元串本身索引方式相同

結果:

0          A
1          b
2          C
3    bbhello
4        123
5        NaN
6         hj
dtype: object 
-----
0      A
1      b
2      C
3      b
4      1
5    NaN
6      h
dtype: object
0      A
1      b
2      C
3     bb
4     12
5    NaN
6     hj
dtype: object
-----
0      h
1      f
2      w
3      h
4      1
5    NaN
Name: key2, dtype: object

 

 

 


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

-Advertisement-
Play Games
更多相關文章
  • 本文內容: 異常的介紹 處理異常 斷言 首發日期:2018-03-26 異常: 異常是程式運行中發生的錯誤,比較常見的比如“除零異常”,如果一個除數為零,那麼會發生這個異常 異常會影響程式的正常運行,所以我們需要處理異常。 所有的異常類是從 java.lang.Exception 類繼承的子類。 異 ...
  • 一、為什麼選擇SpringBoot Spring Boot是由Pivotal團隊提供的全新框架,被很多業內資深人士認為是可能改變游戲規則的新項目。早期我們搭建一個SSH或者Spring Web應用,需要非常繁瑣的步驟,比如配置web.xml,配置資料庫連接,配置事務,配置日誌,配置Tomcat,裝配 ...
  • 一、天天向上的力量 C 一年365天,以第1天的能力值為基數,記為1.0。當好好學習時,能力值相比前一天提高N‰;當沒有學習時,由於遺忘等原因能力值相比前一天下降N‰。每天努力或放任,一年下來的能力值相差多少呢?其中,N的取值範圍是1到10,N可以是小數。 獲得用戶輸入N,計算每天努力和每天放任36 ...
  • 1.應用參數,在web.xml配置,所有Servlet共用 服務端獲取配置的數據,實現Servlet介面 2.私有參數,在web.xml配置 服務端獲取參數數據,實現Servlet介面 3."會話“參數 ClassA設置參數值 ClassB獲取參數值 4.“行為”參數,在HTML、Jsp等前端頁面編 ...
  • 1,補充一點列表傳參需要註意的地方:列表傳參,是傳引用 執行結果: 2,我們可以在函數裡面對傳遞的列表參數,做一個拷貝,就不會是傳引用了 執行後 集合:沒有順序的概念,不能進行索引或者切片操作 1、創建集合. set():可變的 不可變的frozenset() 2,集合add與update操作 up ...
  • 近一段時間在圖像演算法以及音頻演算法之間來回游走。 經常有一些需求,需要將音頻進行採樣轉碼處理。 現有的知名開源庫,諸如: webrtc , sox等, 代碼閱讀起來實在鬧心。 而音頻重採樣其實也就是插值演算法。 與圖像方面的插值演算法沒有太大的區別。 基於雙線性插值的思路。 博主簡單實現一個簡潔的重採樣算 ...
  • 第一步:安裝python 1 首先進入網站下載:點擊打開鏈接(或自己輸入網址https://www.python.org/downloads/),進入之後如下圖,選擇圖中紅色圈中區域進行下載 2 雙擊exe文件進行安裝,如下圖,並按照圈中區域進行設置,切記要勾選打鉤的框,然後再點擊Customize ...
  • C/C++,dynamic_cast, static_cast, const_cast, 大端,小端 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...