• 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,'
    -----')
    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
  • 相关阅读:
    使用代码为textview设置drawableLeft
    Android Studio下添加assets目录
    lib32asound2 : Depends: libc6-i386 (>= 2.7) but it is not going to be installed
    android addJavascriptInterface 不能生效 解决办法
    [Android] 判断手机上是否安装了某个程序
    Github如何回退/回滚到某个版本
    Android导入第三方静态库.a编译成动态库.so
    (总结)Ubuntu apt-get apt-cache命令 使用
    C++11多线程std::thread的简单使用
    Android防止进程被第三方软件杀死
  • 原文地址:https://www.cnblogs.com/jxzhu/p/8654096.html
Copyright © 2020-2023  润新知