2018.03.26 Python-Pandas 字符串常用方法

mac2025-05-14  1

  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,c1      1,2,32    [a,,,c]3        NaNdtype: object----0    [a, b, c]1    [1, 2, 3]2          NaN3          NaNdtype: object----['a', 'b', 'c']0      a1      12    NaN3    NaNdtype: object0      b1      22    NaN3    NaNdtype: object     0    10    a  b,c1    1  2,32  NaN  NaN3  NaN  NaN     0    10  a,b    c1  1,2    32  NaN  NaN3  NaN  NaNdataframe:0      a-b-c1      1-2-c2    [,-,-,]Name: key2, dtype: object0    [a, b, c]1    [1, 2, c]2          NaNName: 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

 

 

 

最新回复(0)