python高级-23.pandas-分组计算-apply-透视表

import numpy as np
import pandas as pd
from pandas import Series,DataFrame
from numpy import nan as NA
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']

神奇的apply

# 读取文件
tips=pd.read_csv('data/tips.csv')
# 显示前五行
tips.head()
total_bill	tip	smoker	day	time	size
0	16.99	1.01	No	Sun	Dinner	2
1	10.34	1.66	No	Sun	Dinner	3
2	21.01	3.50	No	Sun	Dinner	3
3	23.68	3.31	No	Sun	Dinner	2
4	24.59	3.61	No	Sun	Dinner	4
# 读取后5行
tips.tail()
total_bill	tip	smoker	day	time	size
239	29.03	5.92	No	Sat	Dinner	3
240	27.18	2.00	Yes	Sat	Dinner	2
241	22.67	2.00	Yes	Sat	Dinner	2
242	17.82	1.75	No	Sat	Dinner	2
243	18.78	3.00	No	Thur	Dinner	2
# 新增一列数据,tip_percent 到 tip 后一列。值 tip/total_bill
newtip=tips.copy()
num=list(newtip.columns).index('tip')
num
1
newtip.insert(num+1,'tip_percent',newtip.tip/newtip.total_bill)
newtip.head()
total_bill	tip	tip_percent	smoker	day	time	size
0	16.99	1.01	0.059447	No	Sun	Dinner	2
1	10.34	1.66	0.160542	No	Sun	Dinner	3
2	21.01	3.50	0.166587	No	Sun	Dinner	3
3	23.68	3.31	0.139780	No	Sun	Dinner	2
4	24.59	3.61	0.146808	No	Sun	Dinner	4
# 将tip_percent 显示成百分比
newtip1=newtip.copy()
newtip1.tip_percent.apply(lambda x:str(round(x*100,2))+'%')
0       5.94%
1      16.05%
2      16.66%
3      13.98%
4      14.68%
        ...  
239    20.39%
240     7.36%
241     8.82%
242     9.82%
243    15.97%
Name: tip_percent, Length: 244, dtype: object

                
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值