Python数据分析10——数据清洗(四)

这篇博客是紧跟着上一篇的,所以模块,对象都是一样的。

import numpy as np
import pandas as pd
from pandas import Series, DataFrame

concat合并

如果要合并的两组数据之间没有连接键,就不能用merge()方法了。但是,可以使用concat()方法。
新建三个Series数据集。

s1 = Series([1,2], index=['a', 'b'])
s2 = Series([3,4], index=['c', 'd'])
s3 = Series([5,6], index=['e', 'f'])

然后,使用列表的方式传入三个数据集。
在这里插入图片描述通过设置axis参数可以变成一个DataFrame。
在这里插入图片描述
注意:concat()只有内连接和外连接。
同时,还可以通过设置join_axes参数指定索引的顺序。
在这里插入图片描述由于连接后的结果是不可分割的,所以我们可以通过keys参数创建层次索引。
在这里插入图片描述如果是按列索引,那么keys参数就会变成DataFrame的列索引。
在这里插入图片描述PS:提示信息不用管,就是说以后的版本怎么样了而已。
同时,concat()方法也可以应用在DataFrame数据结构中,下面我给我出代码,读者可以自行测试。

df1 = DataFrame([0, 1, 2],index=['a', 'b', 'c'], columns=['val1'])
df2 = DataFrame([3, 4],index=['a', 'b'], columns=['val2'])
pd.concat([df1, df2], axis=1, keys=['one', 'two'])

同时,除了传入列表,还可以出入字典。

pd.concat({'one':df1, 'two':df2}, axis=1)

注意,当行索引类似时,通过默认的连接会出现重复行索引,所以要设置ignore_index参数。
新建数据的代码:

df1 = DataFrame(np.random.randn(3,4), columns=['a', 'b', 'c', 'd'])
df2 = DataFrame(np.random.randn(2,2), columns=['d', 'c'])

下面是直接连接的图。
在这里插入图片描述所以,在行索引出现了一点小问题。下面是正确的方案。
在这里插入图片描述
PS:提示信息不用管,就是说已给不给我排序了。

combine_first合并

上面两种合并,并没有出现两个DataFrame数据集的索引相同的情况,如果出现,只能使用combine_first()函数进行合并了。
新建两个DataFrame数据集。
在这里插入图片描述

然后,使用combine_first()方法。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值