数据科学入门与实战:玩转pandas之四

DataFrame的merge(合并)操作

首先

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

创建df1 df2

df1 = DataFrame({'key':['X','Y','Z','X'],'data_set_1':[1,2,3,4]})
print(df1)
df2 = DataFrame({'key':['X','B','C'],'data_set_2':[4,5,6]})
print(df2)

显示df1 和 df2
在这里插入图片描述
合并操作…

print(pd.merge(df1,df2))
print(pd.merge(df1,df2,on = 'key',how = 'right'))
print(pd.merge(df1,df2,on = 'key',how = 'left'))

在这里插入图片描述

Concatenate和combine

创建arr1和arr2

import numpy as np
import pandas as pd
from pandas import Series,DataFrame
arr1 = np.arange(9).reshape(3,3)
print(arr1)
arr2 = np.arange(9).reshape(3,3)
print(arr2)

在这里插入图片描述
竖着连接,增加行数

print(np.concatenate([arr1,arr2]))#

结果
在这里插入图片描述

横着连接,增加列数

print(np.concatenate([arr1,arr2],axis=1))

在这里插入图片描述
创建Series并且进行两种方向的连接

s1 = Series([1,2,3],index=['X','Y','Z'])
print(s1)
s2 = Series([4,5],index=['A','B'])
print(s2)

在这里插入图片描述

print(pd.concat([s1,s2]))

在这里插入图片描述
另一个方向的连接

print(pd.concat([s1,s2],axis=1))

在这里插入图片描述
DataFrame的concat
创建

df1 = DataFrame(np.random.randn(4,3),columns=['X','Y','Z'])
print(df1)
df2 = DataFrame(np.random.randn(4,3),columns=['X','Y','A'])
print(df2)

在这里插入图片描述
连接

print(pd.concat([df1,df2]))

在这里插入图片描述
横着连接

print(pd.concat([df1,df2],axis=1))

在这里插入图片描述
第二个操作Combine(填充)

s1 = Series([2,np.nan,4,np.nan],index=['A','B','C','D'])
print(s1)
s2 = Series([1,2,3,4],index=['A','B','C','D'])
print(s2)

在这里插入图片描述
用s2去填充s1,如过s1对应位置空则填充,否则保持s1

print(s1.combine_first(s2))#用S2去填充S1

在这里插入图片描述
DataFrame

df1 = DataFrame({
    'X':[1,np.nan,3,np.nan],
    'Y':[5,np.nan,7,np.nan],
    'Z':[9,np.nan,11,np.nan]
})
print(df1)
df2 = DataFrame({
       'Z':[np.nan,10,np.nan,12],
       'A':[1,2,3,4]
})
print(df2)
print(df1.combine_first(df2))

用z和A去填充…
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值