python数据分析基础—取某个字符的前几个字符


前言

在进行数据分析时,有时候我们需要提取单列的每个字符串的前几个字符串进行分析。本文主要讲述针对这种情况处理方法。


取某列前几个字符

1、构建样例数据

import pandas as pd
import numpy as np
#主叫号码 
calling_nbr=["13389012374","13389012375","13389012376","13389012377","13389012379","13389012378","16758439532","16758439533","16758439534","16758439535","16758439536","16758439537"]   
#对端号码
called_nbr=["14374397533","14374397533","14374397533","15926372438","15926372439"] 
#通话时间
start_date=["20230404","20230406","20230408"]
data=pd.DataFrame({
"calling_nbr":[calling_nbr[x] for x in np.random.randint(0,len(calling_nbr),20)],
"called_nbr":[called_nbr[x] for x in np.random.randint(0,len(called_nbr),20)],
"calling_duration":np.random.randint(10,120,20),
"start_date":[start_date[x] for x in np.random.randint(0,len(start_date),20)]})

data

在这里插入图片描述

需求: 取"calling_nbr"列主叫号码前几7个数字,比如0行中”16758439534“,需要提取“1675843”这7个字符,并创建新的一列“calling_pre_7”在dataframe中。

2、查看数据类型

data.dtypes 

在这里插入图片描述

方法一:[x[:7] for x in data[“calling_nbr”]]

data["calling_pre_7"]=[x[:7] for x in data["calling_nbr"]]
data

在这里插入图片描述

方法二:data[‘calling_nbr’].str[:7]

data["calling_pre_7"]=data["calling_nbr"].str[:7]
data

在这里插入图片描述

注意:
方法一与方法二都是针对数据列的数据类型是字符串(pandas中的object)才有效,如果该列是其他数据类型,要转换成字符串数据类型,才可以运行成功。

举例

1、构建样例数据

import pandas as pd
import numpy as np
#主叫号码 
calling_nbr=[13389012374,13389012375,13389012376,13389012377,13389012379,13389012378,16758439532,16758439533,16758439534,16758439535,16758439536,16758439537]   
#对端号码
called_nbr=["14374397533","14374397533","14374397533","15926372438","15926372439"] 
#通话时间
start_date=["20230404","20230406","20230408"]
data=pd.DataFrame({
"calling_nbr":[calling_nbr[x] for x in np.random.randint(0,len(calling_nbr),20)],
"called_nbr":[called_nbr[x] for x in np.random.randint(0,len(called_nbr),20)],
"calling_duration":np.random.randint(10,120,20),
"start_date":[start_date[x] for x in np.random.randint(0,len(start_date),20)]})

data

2、查看数据类型

data.dtypes

在这里插入图片描述
3、取”calling_nbr"前7个数字

方法一:

data["calling_pre_7"]=[x[:7] for x in data["calling_nbr"]]

在这里插入图片描述

方法二:

data["calling_pre_7"]=data[”calling_nbr"].str[:7]

在这里插入图片描述
可以看到,对数据类型是int的列直接使用两种方法都报错。

解决方法:先将“calling_nbr"转换成str数据类型。转换数据类型方法可参考:Pandas数据类型转换

data['calling_nbr']=data['calling_nbr'].astype('str')
data.dtypes

在这里插入图片描述

成功转换数据类型为str后,再选择以下两种方法之一,就可以运行成功了。

data["calling_pre_7"]=[x[:7] for x in data["calling_nbr"]]

data["calling_pre_7"]=data[”calling_nbr"].str[:7]
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值