github上找的练习pandas
的一个项目,记录下学到了啥。
项目
下载到本地用Jupyter notebook打开就好啦。
众所周知,读取数据直接用read_table
和read_csv
里默认的参数sep
并不同,前者是t
,而后者是,
。
计算占比时总会agg
两个函数,搞的列名会多一层就很烦:
# 各职业里面男性的占比
def m_num(x):return x[x.values=='M'].count()
c = upby('occupation').agg({'gender':['count', m_num]}).droplevel(axis=1, level=0)
c['Male ratio'] = c['m_num'] / c['count']
新学到一个思路就是利用value_counts
函数,取两个Series
直接计算:
c = upby('occupation').agg({'gender':m_num}).gender
r = c / upation.value_counts()
# create a data frame and apply count to gender
gender_ocup = upby(['occupation', 'gender']).agg({'gender': 'count'})# create a DataFrame and apply count for each occupation
occup_count = upby(['occupation']).agg('count')# divide the gender_ocup per the occup_count and multiply per 100
occup_gender = gender_ocup.div(occup_count, level = "occupation") * 100
如果是 Series
需要添加参数 axis
。
本文发布于:2024-02-01 09:06:23,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170674958535531.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |