1、将表格里的电话号码中间几位数设置为*
- 先导入数据集,可以看到电话号码的数据是全部显示出来的
- 希望把每一个电话号码的中间数值以加密的形式再展现出来
- df['tel'] = df['tel'].apply(lambda x: x.replace(x[3:7],'****'))
2、只显示表格中电话号码的前三位,并形成新的一列数据
- 将数据的前三位展示出来就可以了
- df['new_tel'] = df['tel'].str[0:3]
3、将表格的电子邮箱的域名取出
- 首先查看原数据中的电子邮箱信息, 都是用户名+@+域名的形式
- 希望只显示域名,则可以以@为分隔符,取出域名信息
- df['email'] = df['email'].apply(lambda x: x.split('@')[1])
4、将过于具体的时间去掉只留下日期
- 先读取数据集,这是另外一个数据
- 由于数据量有些大,可以对此进行样本抽取,取5万个
- data = df.sample(n = 50000,replace = False)
- 查看原数据的时间形式,具体到了时分秒
- 去掉具体的时分秒,并另起新的一列数据
- df['date'] = df['InvoiceDate'].dt.date
5、计算每一个订单的总价
- 用每一个订单的数量*单价
- data['total_price'] = df[['Quantity','UnitPrice']].apply(np.prod,axis = 1)
6、按日期汇总表格的数据
- grouped_data = data.groupby(by = 'date').sum()
7、将字符类型的日期行索引转化为日期类型
- 查看按日期行分组的索引类型
- grouped_data.index
- 可以看到行索引并不是日期数据类型的,将其转化
- grouped_data.index = pd.to_datetime(grouped_data.index)
8、计算每天总价的变化率
- 前面表格已是按日期每天展示,总价的变化率等于(当天的总价-前一天的总价)/前一天的总价
- grouped_data['总价变化率'] = grouped_data['total_price'].pct_change()
9、计算每五日一次的平均总价
- 使用.rolling(5)方法
- grouped_data['SMA_5'] = grouped_data['total_price'].rolling(5).mean()
10、将某列的数据下上平移
- 使用.shift(1)方法,当参数为正数时,向下平移,当参数为负数时,向上平移
- grouped_data['total_price_before'] = grouped_data['total_price'].shift(1)