2018.03.26 Python-Pandas 字符串常用方法

  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

 

 

 

posted @ 2018-03-26 21:28  TAB_Zhu  阅读(2419)  评论(0编辑  收藏  举报