python 用 pd.Series.str.contains() 方法選取數據框中的特定列


一、讀入數據

import os import pandas as pd path = r'E:\pyspace\數據集' data_file = os.path.join(path, 'income_dist.csv') df = pd.read_csv(open(data_file))  # 因為文件路徑中有中文字符,用 open() 函數

二、基本信息

1、維度

df.shape

2180 行, 351 列

 

2、info

df.info()

 

  3、表頭

df.columns

 

三、篩選列

1、列名中含有 'Top'  的列

idx = df.columns.str.contains('Top')  # 布爾索引
df.columns[idx]

 注:df[df.columns[idx]] 即可在源數據框中選取指定的列。

 

2、選取以 ‘Top’ 開始,以‘share’結尾的列名稱

idx = df.columns.str.contains('^Top.+share$', regex=True) df.columns[idx]

 

3、選取名稱為 'Top 10% income share', 'Top 5% income share', 'Top 1% income share', 'Top 0.5% income share', 'Top 0.1% income share'  的列

idx = df.columns.str.contains('Top (10|5|1|0.5|0.1)%.+share$', regex=True) df.columns[idx]

 

 函數詳解:

Series.str.contains(pat,case = True,flags = 0,na = nan,regex = True) 
#
測試pattern或regex是否包含在Series或Index的字符串中。 # 返回布爾值系列或索引,具體取決於給定模式或正則表達式是否包含在系列或索引的字符串中。

參數
pat : str類型
字符序列或正則表達式。

case : bool,默認為True
如果為True,區分大小寫。

flags : int,默認為0(無標志)
標志傳遞到re模塊,例如re.IGNORECASE。

na : 默認NaN
填寫缺失值的值。

regex : bool,默認為True
如果為True,則假定pat是正則表達式。
如果為False,則將pat視為文字字符串。
 
         

 

返回:    
布爾值的Series或Index,指示給定模式是否包含在Series或Index的每個元素的字符串中。

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM