pandas——字符串操作

字符串操作

import pandas as pd
import numpy as np
s = pd.Series(['A', 'c', 'AGeR', 'SEW', np.nan])
s
0       A
1       c
2    AGeR
3     SEW
4     NaN
dtype: object

字符串型 Series 的大小写转换

s.str.upper()
0       A
1       C
2    AGER
3     SEW
4     NaN
dtype: object
s.str.lower()
0       a
1       c
2    ager
3     sew
4     NaN
dtype: object

计算每个字符串的长度

s.str.len()
0    1.0
1    1.0
2    4.0
3    3.0
4    NaN
dtype: float64
字符串的替换操作
df = pd.DataFrame(np.random.randn(3, 2), columns=['A a', 'B b'], index=range(3))
df
A aB b
00.021985-0.110258
10.212810-0.915461
20.739122-0.471499

将属性名中的空格去除

df.columns = df.columns.str.replace(' ', '')
df
AaBb
00.021985-0.110258
10.212810-0.915461
20.739122-0.471499
字符串切分
se = pd.Series(['a_b_c', 'x_y_z', 'p_q_t'])
se
0    a_b_c
1    x_y_z
2    p_q_t
dtype: object
se.str.split('_')     # 按指定字符切分 全切 不计次数
0    [a, b, c]
1    [x, y, z]
2    [p, q, t]
dtype: object
se.str.split('_', 1)     # 只能切分一次
0    [a, b_c]
1    [x, y_z]
2    [p, q_t]
dtype: object

虽然切分了 但是其数据类型还是 Series 通过 expand 属性可以是数据增维

se.str.split('_', expand=True)
012
0abc
1xyz
2pqt
包含关系
ser = pd.Series(['A', 'c', 'AGeR', 'SEW', np.nan])
ser.str.contains('A')
0     True
1    False
2     True
3    False
4      NaN
dtype: object
r = pd.Series([2,5,4,9,1,7])
r
0    2
1    5
2    4
3    9
4    1
5    7
dtype: int64

isin() 方法可以传入一个列表 看数据有没有出现在传入的列表中

r.isin([2,8,6])
0     True
1    False
2    False
3    False
4    False
5    False
dtype: bool
r[r.isin([2,8,6])]
0    2
dtype: int64
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值