数据规整化

摘自《利用Python进行数据分析》——Wes Mckinney

合并数据集

数据库风格的DataFrame合并

pandas.merge1可根据一个或多个键将两个不同DataFrame中的行连接起来。

In [174]: df1
Out[174]: 

   data1 key
0      0   b
1      1   b
2      2   a
3      3   c
4      4   a
5      5   b
In [175]: df2
Out[175]: 

   data2 key
0      0   a
1      1   b
2      2   a
3      3   b
4      4   d
In [176]: pd.merge(df1, df2, on='key', how='left')
Out[176]: 

    data1 key  data2
0       0   b    1.0
1       0   b    3.0
2       1   b    1.0
3       1   b    3.0
4       2   a    0.0
5       2   a    2.0
6       3   c    NaN
7       4   a    0.0
8       4   a    2.0
9       5   b    1.0
10      5   b    3.0

merge函数的参数:

参数 说明
left 参与合并的左侧DataFrame
right 参与合并的右侧DataFrame
how “inner”, “outer”, “left”, “right”默认为”inner”
on 用于连接的列名。必须存在于左右两个DataFrame对象中。如果未制定,且其他连接键也未指定,则以left和right列名的交集作为连接键
left_on 左侧DataFrame中用作连接键的列,left_onright_on加在一块完成on的功能
right_on 右侧DataFrame中用作连接键的列
left_index 将左侧的行索引用作其连接键,数据类型boolean
right_index 类似于上,当想通过两个dataframe的索引来合并的时候,需启用right_on=True&left_on=True
sort 根据连接键对合并后的数据进行排序,默认为True。有时在处理大数据集时,禁用该选项可获得更好的性能
suffixes 字符串元祖,用于追加到重叠列名的末尾,默认为(‘_x, _y’)。例如,如果左右两个DataFrame对象都有“data”,则结果中就会出现”data_x”和“data_y”
copy 设置为False,可以再抹些特殊情况下避免将数据复制到结果数据结构中。默认总是复制

索引上的合并

DataFrame还有一个join实例方法,它能更为方便地实现按索引合并。它还可用于合并多个带有相同或相似索引的DataFrame对象,而不管它们之间有没有重叠的列。

轴向连接

Numpy有一个用于合并原始数组的concatenation函数:

In [4]: arr
Out[4]: 

array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])
In [5]: np.concatenate([arr, arr], axis=1)
Out[5]: 

array([[ 0,  1,  2,  3,  0,  1,  2,  3],
       [ 4,  5,  6,  7,  4,  5,  6,  7],
       [ 8,  9, 10, 11,  8,  9, 10, 11]])
In [6]: np.concatenate([arr, arr], axis=0)
Out[
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值