《利用python进行数据分析》读书笔记--第七章 数据规整化:清理、转换、合并、重塑(一)...

论坛 期权论坛     
选择匿名的用户   2021-5-28 02:12   0   0
<div class="blogpost-body" id="cnblogs_post_body">
<p style="font-size:12pt;font-family:&#39;黑体&#39;;line-height:160%;text-indent:2em;">数据分析和建模的大量编程工作都是在数据准备上的(深表同意):加载、清理、转换以及重塑。pandas和Python标准库提供了一组高级的、灵活的、高效的核心函数和算法,他们能够轻松地将数据规整化为正确的形式。</p>
<p style="font-size:12pt;font-family:&#39;黑体&#39;;line-height:160%;text-indent:2em;">1、合并数据集</p>
<p style="font-size:12pt;font-family:&#39;黑体&#39;;line-height:160%;text-indent:2em;">pandas对象中的数据可以通过一些内置的方式进行合并</p>
<ul><li>
   <div style="font-size:12pt;font-family:&#39;黑体&#39;;line-height:160%;text-indent:2em;">
    pandas.merge可以根据一个或者多个键值连接起来,就是SQL中的数据库连接工作。
   </div> </li><li>
   <div style="font-size:12pt;font-family:&#39;黑体&#39;;line-height:160%;text-indent:2em;">
    pandas.concat可以沿着一条轴将多个对象堆叠在一起
   </div> </li><li>
   <div style="font-size:12pt;font-family:&#39;黑体&#39;;line-height:160%;text-indent:2em;">
    实例方法combine_first可以讲重复数据编接在一起 ,用一个对象中的值填充另一个对象中的缺失值(注:译者说就是数据库中的外连接)。
   </div> </li></ul>
<p style="font-size:12pt;font-family:&#39;黑体&#39;;line-height:160%;text-indent:2em;">由于太常用,给出一些例子。</p>
<p style="font-size:12pt;font-family:&#39;黑体&#39;;line-height:160%;text-indent:2em;">数据库风格的DataFrame合并</p>
<div class="cnblogs_code" style="border:#cccccc 1px solid;">
  <pre class="blockcode"><span style="color:#008000;">#</span><span style="color:#008000;">-*- encoding: utf-8 -*-</span>
<span style="color:#0000ff;">import</span><span style="color:#000000;"> numpy as np
</span><span style="color:#0000ff;">import</span><span style="color:#000000;"> pandas as pd
</span><span style="color:#0000ff;">import</span><span style="color:#000000;"> matplotlib.pyplot as plt
</span><span style="color:#0000ff;">from</span> pandas <span style="color:#0000ff;">import</span><span style="color:#000000;"> Series,DataFrame

</span><span style="color:#008000;">#</span><span style="color:#008000;">数据集的合并(merge)或者连接(join)运算是通过一个或者多个键将行链接起来。这是关系型数据库的核心。</span>
df1 &#61; DataFrame({<!-- --><span style="color:#800000;">&#39;</span><span style="color:#800000;">key</span><span style="color:#800000;">&#39;</span>:[<span style="color:#800000;">&#39;</span><span style="color:#800000;">b</span><span style="color:#800000;">&#39;</span>,<span style="color:#800000;">&#39;</span><span style="color:#800000;">b</span><span style="color:#800000;">&#39;</span>,<span style="color:#800000;">&#39;</span><span style="color:#800000;">a</span><span style="color:#800000;">&#39;</span>,<span style="color:#800000;">&#39;</span><span style="color:#800000;">c</span><span style="color:#800000;">&#39;</span>,<span style="color:#800000;">&#39;</span><span style="color:#800000;">a</span><span style="color:#800000;">&#39;</span>,<span style="color:#800000;">&#39;</span><span style="color:#800000;">a</span><span style="color:#800000;">&#39;</span>,<span style="color:#800000;">&#39;</span><span style="color:#800000;">b</span><span style="color:#800000;">&#39;</span>],<span style="color:#800000;">&#39;</span><span style="color:#800000;">data1</span><span style="color:#800000;">&#39;</span>:range(7<span style="color:#000000;">)})
df2 </span>&#61; DataFrame({<!-- --><span style="color:#800000;">&#39;</span><span style="color:#800000;">key</span><span style="color:#800000;">&#39;</span>:[<span style="color:#800000;">&#39;</span><span style="color:#800000;">a</span><span style="color:#800000;">&#39;</span>,<span style="color:#800000;">&#39;</span><span style="color:#800000;">b</span><span style="color:#800000;">&#39;</span>,<span style="color:#800000;">&#39;</span><span style="color:#800000;">d</span><span style="color:#800000;">&#39;</span>],<span style="color:#800000;">&#39;</span><span style="color:#800000;">data2</span><span style="color:#800000;">&#39;</span>:range(3<span style="color:#000000;">)})
</span><span style="color:#0000ff;">print</span><span style="color:#000000;"> df1
</span><span style="color:#0000ff;">print</span><span style="color:#000000;"> df2
</span><span style="color:#008000;">#</span><span style="color:#008000;">没有指定用哪些列进行合并时,默认用重复的列名进行合并,并且只保留合并列中的交集,其他舍去</span><span style="color:#008000;">
#</span><span style="color:#008000;">即merge默认的是“内连接”</span>
<span style="color:#0000ff;">print</span><span style="color:#000000;"> pd.merge(df1,df2)
</span><span style="color:#008000;">#</span><span style="color:#008000;">不过,最好显示指定一下:</span>
<span style="color:#0000ff;">print</span> pd.merge(df1,df2,on &#61; <span style="color:#800000;">&#39;</span><span style="color:#800000;">key</span><span style="color:#800000;">&#39;</span><span style="color:#000000;">)
</s
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP