datewhale_pandas_task11综合练习一

【任务一】企业收入的多样性

其中 p(xi) 是企业该年某产业收入额占该年所有产业总收入的比重。在company.csv中存有需要计算的企业和年份,在company_data.csv中存有企业、各类收入额和收入年份的信息。现请利用后一张表中的数据,在前一张表中增加一列表示该公司该年份的收入熵指标 I 。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

【任务二】组队学习信息表的变换

【题目描述】请把组队学习的队伍信息表变换为如下形态,其中“是否队长”一列取1表示队长,否则为0

df = pd.read_excel('data/task11/组队信息汇总表.xlsx')
df.head()

【任务三】美国大选投票情况

【题目描述】两张数据表中分别给出了美国各县(county)的人口数以及大选的投票情况,请解决以下问题:

  • 有多少县满足总投票数超过县人口数的一半

在这里插入图片描述

total_votes_df = candidate_df.groupby(['state','county'])['total_votes'].sum().to_frame().reset_index()
total_votes_df['US County'] = '.'+total_votes_df['county']+', '+total_votes_df['state']
res = total_votes_df.merge(population_df, on='US County', how='left')
res[res['total_votes']/res['Population']>0.5].shape

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
答:1434个县满足总投票数超过县人口数的一半

  • 把州(state)作为行索引,把投票候选人作为列名,列名的顺序按照候选人在全美的总票数由高到低排序,行列对应的元素为该候选人在该州获得的总票数

    # 此处是一个样例,实际的州或人名用原表的英语代替
                拜登   川普
    威斯康星州   2      1
    德克萨斯州   3      4
    
    temp = candidate_df.groupby('candidate')['total_votes'].sum().sort_values(ascending=False).index
    res = candidate_df.pivot_table(index='state',
                              columns='candidate',
                             values='total_votes')
    res = res[list(temp)]
    

    在这里插入图片描述
    在这里插入图片描述

  • 每一个州下设若干县,定义拜登在该县的得票率减去川普在该县的得票率为该县的BT指标,若某个州所有县BT指标的中位数大于0,则称该州为Biden State,请找出所有的Biden State

candidate_df['total_votes_sum'] = candidate_df.groupby(['state','county'])['total_votes'].transform('sum')
candidate_df['votes_rate'] = candidate_df['total_votes']/candidate_df['total_votes_sum']
temp = candidate_df.pivot(index=['state','county'],columns='candidate',values='votes_rate')[['Joe Biden','Donald Trump']]
temp['BT'] = temp['Joe Biden'] - temp['Donald Trump']
def func(x):
   if x.median() > 0:
       return 'Biden State'
   else:
       return 'Others'
       
temp['result'] = temp.groupby('state')['BT'].transform(func)
ha = temp[temp['result']=='Biden State']
num_of_biden_state = set(list(ha.index.get_level_values(0)))
print(list(num_of_biden_state))
print(len(num_of_biden_state))

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值