pandas库学习日记7

表内字符的处理

df1 = df[df['content'].str.len() > 15]

# 通过 str.len() 的形式
# 就能获取到这个 Series 中每一个字符串元素的长度,
    也就是每一行 'content' 列字符串的长度,
    返回的结果依然是一个 Series,
    只不过这个新的 Series 中的值
    是对应的原 'content' 列字符串的长度数值

表名.loc[(条件表达式),'列名']

~取相反、&:and

df=employees.loc[(employees['employee_id']%2==1)&(~employees['name'].str.startswith('M')),'bonus']=employees['salary']
    

    # employees.loc[(条件表达式),'bonus'] 这种形式是 loc 索引器的典型用法,用于在满足前面条件表达式的行中,定位到bonus列

    # 判断employee_id列的值是否为奇数&通过employees['name'].str 访问name列元素的字符串,startswith('M') 方法来判断每个员工名字是否以 'M' 开头

    # 满足条件列的对应的salary列的值放到对应的bonus列里


# employees表 内容:

employee_id	name	salary	
1    	    John    5000	
2	        Mary    6000	
3	        Peter   7000	
4	        Mike   	8000	
5	        Lucy 	9000	

# 执行命令后 df表 中的内容:

employee_id	name	salary	bonus
1	        John	5000	5000
2	        Mary	6000	NaN
3	        Peter	7000	7000
4	        Mike	8000	NaN
5	        Lucy	9000	9000

df['name'].str.len() 长度

# 输出:

0    4
1    4
2    5
3    4
4    4

.str.lower() 转为小写

.str.upper() 转大写

.str.capitalize() 首字母大写,其他小写

.str.swapcase() 大写->小写  小写->大写

.str.strip() 去除两端空白

.str.lstrip() 去除左侧空白

.str.rstrip() 去除右侧空白

df['name'].str.contains('ar',case=False)  name列中是否包含‘ar’,case=false是不区分大小写

.str.startswith('M') 是否以‘M’开头

.str.endswith('y') 是否以‘y’结尾

.str.isalnum() 是否只有字母数字

.str.isalpha() 是否只有字母

.str.isdigit() 是否只有数字

.str.join() 连接

df['name'].str.join('-')

# 输出:

0      J-o-h-n
1      M-a-r-y
2    P-e-t-e-r
3      M-i-k-e
4      L-u-c-y
Name: name, dtype: object

.str.split()  分隔

df['name']=['Jo:hn', 'Mar:y', 'Peter', 'Mike', 'Lucy']
df['name'].str.split(pat=':', n=-1, expand=False)

# 以‘:’为分隔标志 用‘,’分开
0    [Jo, hn]
1    [Mar, y]
2     [Peter]
3      [Mike]
4      [Lucy]
Name: name, dtype: object

df['name'].str.split(pat=':', n=-1, expand=True)

# 以‘:’为分隔标志 分成两列
       0     1
0     Jo    hn
1    Mar     y
2  Peter  None
3   Mike  None
4   Lucy  None

.str.get() 按索引值提取字符

df['name'].str.get(0)

# 返回值:

0    J
1    M
2    P
3    M
4    L
Name: name, dtype: object

.str.findall() 查找字符然后输出

df['name'].str.findall('e')

# 输出:

0        []
1        []
2    [e, e]
3       [e]
4        []
Name: name, dtype: object



df['name'].str.findall('\d')

# \d是查找数字的

.str.repeat()  字符多打印()变

df['name'].str.repeat(3)

# 输出:

0       JohnJohnJohn
1       MaryMaryMary
2    PeterPeterPeter
3       MikeMikeMike
4       LucyLucyLucy
Name: name, dtype: object

.str.pad() 用()补齐字符

df['name'].str.pad(6,side='left',fillchar='0')

    side=
    left:在左边补充
    right:在右边补充
    both:两边都补

# 输出:

0    00John
1    00Mary
2    0Peter
3    00Mike
4    00Lucy
Name: name, dtype: object

.str.cat() 某列以()分隔显示成一行

df['name'].str.cat(sep=',')

# 输出:

John,Mary,Peter,Mike,Lucy

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值