【pandas06】连接

感谢datawhale开展的每月组队学习,教材ref: 第六章:连接

关系型连接

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

方向连接

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

类连接操作

在这里插入图片描述

练习

Ex1:美国疫情数据集

现有美国4月12日至11月16日的疫情报表,请将 New York 的 Confirmed, Deaths, Recovered, Active 合并为一张表,索引为按如下方法生成的日期字符串序列:

In [61]: date = pd.date_range('20200412', '20201116').to_series()

In [62]: date = date.dt.month.astype('string').str.zfill(2
   ....:        ) +'-'+ date.dt.day.astype('string'
   ....:        ).str.zfill(2) +'-'+ '2020'
   ....: 

In [63]: date = date.tolist()

In [64]: date[:5]
Out[64]: ['04-12-2020', '04-13-2020', '04-14-2020', '04-15-2020', '04-16-2020']

我太菜了写不出来😢,我来解读一下code把

L = []
for d in date:
	#因为数据是按照天数分开一个一个存在一个文件夹里的(每个csv文件都含有当天的所有地区covid数据),我们在题目中已经获得了那些csv文件名称了
	#于是我们这里可以用一个for 循环去一个一个把文件读出来(暂时命名为df)
	#这里要记得传入参数index_col='Province_State',把索引设为state,因为我们在下一步做loc索引器的时候要取出行索引为New York的
   df = pd.read_csv('data/us_report/' + d + '.csv', index_col='Province_State')
   # 因为上一步里我们取到的数据是包含所有state的,但是我们目前只关心New York的数据
   # 所以我们可以用loc索引器(第三章)去把纽约的数据取出来
   # 复习一下loc知识: loc[行的选择,列的选择]
   # 我们这里行的选择为:纽约的行;列的选择为:使用list选择多列
   # 现在我们就从原表df得到了过滤出我们所需要信息的series序列(data)
   data = df.loc['New York', ['Confirmed','Deaths','Recovered','Active']]
   # 上一步获得的是New York那一行,返回的是个序列,我们需要把它转成dataframe
   # 使用to_frame() method返回的是,列是New York,行是['Confirmed','Deaths','Recovered','Active']
   # 所以我们需要转置一下,然后append到list里面(学到了)
   L.append(data.to_frame().T)

# 因为我们已经把所有天的New York数据全部放到一个list里了,我们可以直接用concat函数
# 纵向拼接成一个表
res = pd.concat(L) 
# 因为我们append的时候也是按照date的顺序for loop append的
# 所以我们可以直接把date赋给dataframe做索引
res.index = date
res.head() 

Ex2:实现join函数

请实现带有 how 参数的 join 函数

  • 假设连接的两表无公共列

  • 调用方式为 join(df1, df2, how=“left”)

  • 给出测试样例

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值