Pandas - 数据规整化


1 数据规整化-合并数据集

1.1 merge的内连,外连,左连,右连

  • merge默认采用的是“inner连结”,取交集部分,没有交集的会舍弃掉
  • 如果没指定用哪列连结,默认情况下merge会将重叠列的列名当做健,一般建议用 on 指定一下
import pandas as pd
from pandas import Series,DataFrame
import numpy as np
from numpy import nan as NA
df1 = DataFrame({
  'key':['b','b','a','c','a','a','b'],
               'data1':range(7)})
df2 = DataFrame({
  'key':list('abd'),
               'data2':range(3)})
pd.merge(df1,df2)
.dataframe thead tr:only-child th { text-align: right; } .dataframe thead th { text-align: left; } .dataframe tbody tr th { vertical-align: top; }
data1 key data2
0 0 b 1
1 1 b 1
2 6 b 1
3 2 a 0
4 4 a 0
5 5 a 0
pd.merge(df1,df2,on='key')#默认how='inner'
.dataframe thead tr:only-child th { text-align: right; } .dataframe thead th { text-align: left; } .dataframe tbody tr th { vertical-align: top; }
data1 key data2
0 0 b 1
1 1 b 1
2 6 b 1
3 2 a 0
4 4 a 0
5 5 a 0
pd.merge(df1,df2,on='key',how='outer')
.dataframe thead tr:only-child th { text-align: right; } .dataframe thead th { text-align: left; } .dataframe tbody tr th { vertical-align: top; }
data1 key data2
0 0.0 b 1.0
1 1.0 b 1.0
2 6.0 b 1.0
3 2.0 a 0.0
4 4.0 a 0.0
5 5.0 a 0.0
6 3.0 c NaN
7 NaN d 2.0
  • how=left , 取merge连结的左边数据集,右边只在取有关联的,没关联的NAN值填充
  • how=right , 取merge连结的右边数据集,左边只在取有关联的,没关联的NAN值填充
df5 = DataFrame({
  'key':['b','b','a','c','a','a'],
               'data1':range(6)})
df6 = DataFrame({
  'key':list('ababd'),
               'data2':range(5)})
pd.merge(df1,df2,on='key',how='left')
.dataframe thead tr:only-child th { text-align: right; } .dataframe thead th { text-align: left; } .dataframe tbody tr th { vertical-align: top; }
data1 key data2
0 0 b 1.0
1 1 b 1.0
2 2 a 0.0
3 3 c NaN
4 4 a 0.0
5 5 a 0.0
6 6 b 1.0
df5 = DataFrame({
  'key':['b','b','a','c','a','a'],
               'data1':range(6)})
df6 = DataFrame({
  'key':list('ababd'),
               'data2':range(5)})
pd.merge(df1,df2,on='key',how='right')
.dataframe thead tr:only-child th { text-align: right; } .dataframe thead th { text-align: left; } .dataframe tbody tr th { vertical-align: top; }
data1 key data2
0 0.0 b 1
1 1.0 b 1
2 6.0 b 1
3 2.0 a 0
4 4.0 a 0
5 5.0 a 0
6 NaN d 2

如果两个对象的列名不同,也可以分别进行指定

df3 = DataFrame({
  'lkey':['b','b','a','c','a','a','b'],
               'data1':range(7)})
df4 = DataFrame({
  'rkey':list('abd'),
               'data2':range(3)})
pd.
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
至尊宝纺是一款优秀的纺织软件,为纺织行业的生产和管理提供了全面的解决方案。在纺十年感恩版v9.74中,至尊宝纺进一步增强了软件的稳定性和功能性,提供了更好的使用体验。 首先,至尊宝纺纺十年感恩版v9.74在性能方面有了显著的提升。通过优化软件内部的算法和数据处理速度,使得软件的运行更加快速高效。这意味着用户在使用至尊宝纺纺十年感恩版v9.74时,可以更快地完成各种操作,提高生产效率。 其次,至尊宝纺纺十年感恩版v9.74增加了更多的功能模块,使得软件的功能更加全面。例如,增加了纺纱、织造和整理等模块,满足了纺织企业不同环节的需求。同时,增加了质量管理和生产计划等模块,帮助企业更好地把控产品质量和生产进度。 此外,至尊宝纺纺十年感恩版v9.74还提供了更加友好和易用的用户界面。通过优化软件的布局和交互方式,使得用户能够更加方便地进行操作和管理。同时,软件还提供了专业的培训和技术支持,帮助用户更好地使用和了解软件的功能。 总之,至尊宝纺纺十年感恩版v9.74是一款专业、稳定、功能强大的纺织软件。它的发布进一步提升了纺织行业的生产和管理水平,帮助企业提高了生产效率和产品质量。无论是对于纺织企业还是个人用户,至尊宝纺纺十年感恩版v9.74都是一款具有巨大价值的软件。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值