python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > pandas字符串分割str.split()函数

python语言中pandas字符串分割str.split()函数

作者:hanyunkaka

分列在我们日常工作中经常用到,从各种系统中导出的什么订单号、名称、日期很多都是复合组成的,这些列在匹配、合并时没有办法使用,我们经常需要将她们分开,下面这篇文章主要给大家介绍了关于python语言中pandas字符串分割str.split()函数的相关资料,需要的朋友可以参考下

前言

为了介绍python语言中pandas库在数据分析中的重要作用,本人打算以NBA球星勒布朗詹姆斯在2020-2021赛季常规赛个人数据为例对pandas相关函数进行详细说明。利用爬虫技术,在知名篮球网站虎扑爬取了勒布朗詹姆斯的数据,稍后会将数据上传至csdn,以供大家下载。

这篇文章,详细介绍了pandas字符串分割函数---str.split()的用法。

DataFrame.str.split(pa,n,expand)
pat:字符串分隔符,默认为空格。
n:用于指定需要分割的次数,默认为-1。其中,None,0和-1都被解释为返回所有分割的字符串。
expand:将拆分的字符串展开为单独的列,默认为False。

                True:返回DataFrame / MultiIndex;

                False:返回包含字符串列表的Series / Index。

1、常规赛数据格式

勒布朗詹姆斯2020-2021赛季常规赛个人数据的数据结构如下:

日期对手比分时间投篮...
05/17鹈鹕110-98(胜)2711-22...
05/16步行者122-115(胜)2811-22...
..................

2、计算詹姆斯常规赛命中率

勒布朗詹姆斯2020-2021赛季常规赛个人数据中只有每场比赛的命中率,数据的第4列为每场比赛的投篮数和命中数,格式为"命中数-投篮数"。如果想要计算詹姆斯整个常规赛的命中率,则需要算出他常规赛的投篮数和命中数。此时,需要用到pandas分割字符串函数str.split()。

import numpy as np
import pandas as pd
df = pd.read_csv(“lbj-2020-2021-regular.csv”,encoding="gbk")
df0 = df['投篮'].str.split("-",expand=True)
df0.columns = ['命中数','投篮数']

DataFrame类型的df0即为詹姆斯常规赛的命中数和投篮数,如下所示:

0命中数投篮数
11122
21122
.........

因为要分别求取命中数和投篮数的总和,所以需要将df0的列转化为整型,继而可得到詹姆斯整个常规赛的命中率。

df0['命中数'] = df0['命中数'].astype('int')
df0['投篮数'] = df0['投篮数'].astype('int')
ShootRate = df0['命中数'].sum() / df0['投篮数'].sum()

计算得到,詹姆斯2020-2021常规赛投篮命中率为51.34%,还是很不错的水平。

总结

到此这篇关于python语言中pandas字符串分割str.split()函数的文章就介绍到这了,更多相关pandas字符串分割str.split()函数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文