Task Special: 第一次综合练习

datawhale 组对学习 pandas
http://datawhale.club/t/topic/579/4
任务:美国大选投票情况
【题目描述】两张数据表中分别给出了美国各县(country)的人口数以及大选的投票情况,请解决以下问题:
1.有多少县满足总票数超过县人口数的一半
2.把州(state)作为行索引,把投票候选人作为列名,列名的顺序按照候选人在全美的总票数由高到低排序,行列
对应的元素为该候选人在该州获得的总票数
#此处是一个样例,实际的州或人名用原表的英语代替
拜登 川普
威斯康星州 2 1
德克萨斯州 3 4
3.每一个州下设若干县的,定义拜登在该县的得票率减去川普在该县的得票率为该州的BT指标,
若某个州所有县BT指标的中位数大于0,则该州为Biden State,请找出所有的Biden State

import numpy as np
import pandas as pd
df1 = pd.read_csv("D:\BaiduNetdiskDownload\county_population.csv")
df1

在这里插入图片描述

df2 = pd.read_csv("D:\BaiduNetdiskDownload\president_county_candidate.csv")
df2

在这里插入图片描述

df1['US County'].unique()
array(['.Autauga County, Alabama', '.Baldwin County, Alabama',
       '.Barbour County, Alabama', ..., '.Uinta County, Wyoming',
       '.Washakie County, Wyoming', '.Weston County, Wyoming'],
      dtype=object)
df2['state'].unique()
array(['Delaware', 'District of Columbia', 'Florida', 'Georgia', 'Hawaii',
       'Idaho', 'Illinois', 'Indiana', 'Iowa', 'Kansas', 'Kentucky',
       'Louisiana', 'Maine', 'Maryland', 'Massachusetts', 'Michigan',
       'Minnesota', 'Mississippi', 'Missouri', 'Montana', 'Nebraska',
       'Nevada', 'New Hampshire', 'New Jersey', 'New Mexico', 'New York',
       'North Carolina', 'North Dakota', 'Ohio', 'Oklahoma', 'Oregon',
       'Pennsylvania', 'Rhode Island', 'South Carolina', 'South Dakota',
       'Tennessee', 'Texas', 'Utah', 'Vermont', 'Virginia', 'Washington',
       'West Virginia', 'Wisconsin', 'Wyoming', 'Alabama', 'Alaska',
       'Arkansas', 'California', 'Colorado', 'Connecticut', 'Arizona'],
      dtype=object)
df2['county'].unique()
array(['Kent County', 'New Castle County', 'Sussex County', ...,
       'La Paz County', 'Maricopa County', 'Mohave County'], dtype=object)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`std::task::Context` 是 Rust 的异步编程库 `async-std` 和 `tokio` 中常用的类型,用于传递异步任务执行的上下文信息。它包含了当前任务的调度器、Waker、时间信息等。要使用 `Context`,需要先创建一个 `Waker` 对象,它会在任务可以继续执行时被唤醒。 下面是一个示例代码,展示了如何在 `async-std` 中使用 `Context`: ```rust use async_std::task::{Context, Poll}; use async_std::task; use std::future::Future; use std::pin::Pin; async fn my_task() { println!("Start task"); task::sleep(std::time::Duration::from_secs(1)).await; println!("Task completed"); } struct MyFuture {} impl Future for MyFuture { type Output = (); fn poll(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Self::Output> { // 唤醒任务,使它可以执行 cx.waker().wake_by_ref(); Poll::Ready(()) } } fn main() { // 创建异步任务 let my_task = my_task(); // 执行异步任务 task::spawn(async move { // 等待异步任务完成 my_task.await; println!("My task is done"); // 创建 MyFuture 对象并执行它 let my_future = MyFuture {}; let mut my_future_pin = Pin::new(&mut my_future); my_future_pin.poll(&mut Context::from_waker(task::noop_waker_ref())).await; println!("MyFuture is done"); }); // 等待异步任务执行完成 task::block_on(async {}); } ``` 在上面的代码中,我们首先创建了一个异步任务 `my_task`,然后使用 `task::spawn` 执行它。在任务执行完成后,我们创建了一个 `MyFuture` 对象,并使用 `Context` 执行它。注意到 `poll` 方法中的 `cx.waker().wake_by_ref()`,它会唤醒任务,使得它可以继续执行。 需要注意的是,`Context` 的创建需要传递一个 `Waker` 对象。在示例代码中,我们使用了 `task::noop_waker_ref()`,它是一个空的 `Waker` 对象,可以在不需要唤醒任务的情况下创建 `Context`。如果需要唤醒任务,可以自定义一个 `Waker` 对象并传递给 `Context`。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值