<div class="iteye-blog-content-contain" style="font-size: 14px"><p><div id="cnblogs_post_body" class="cnblogs-markdown"></p>
<p> <h1 id="选择列">选择列</h1> </p>
<p> <p>根据列名来选择某列的数据</p> </p>
<p> <div class="sourceCode"></p>
<p> <pre class="sourceCode
PYTHON"><code class="sourceCode
PYTHON"><span class="im">import</span> pandas <span class="im">as</span> pd</p>
<p><span class="im">import</span> numpy <span class="im">as</span> np</p>
<p>dates <span class="op">=</span> pd.date_range(<span class="st">&quot;2017-01-08&quot;</span>, periods<span class="op">=</span><span class="dv">6</span>)</p>
<p>data <span class="op">=</span> pd.DataFrame(np.arange(<span class="dv">24</span>).reshape(<span class="dv">6</span>, <span class="dv">4</span>), index<span class="op">=</span>dates, columns<span class="op">=</span>[<span class="st">&quot;A&quot;</span>, <span class="st">&quot;B&quot;</span>, <span class="st">&quot;C&quot;</span>, <span class="st">&quot;D&quot;</span>])</p>
<p><span class="bu">print</span>(<span class="st">&quot;data:&quot;</span>)</p>
<p><span class="bu">print</span>(data)</p>
<p><span class="co"># 选择A列数据</span></p>
<p><span class="bu">print</span>(<span class="st">&quot;A列数据:&quot;</span>)</p>
<p><span class="bu">print</span>(data[<span class="st">&quot;A&quot;</span>])</code></pre></p>
<p> </div> </p>
<p> <p>输出结果:</p> </p>
<p> <div class="sourceCode"></p>
<p> <pre class="sourceCode
PYTHON"><code class="sourceCode
PYTHON">data:</p>
<p> A B C D</p>
<p><span class="dv">2017-01-08</span> <span class="dv">0</span> <span class="dv">1</span> <span class="dv">2</span> <span class="dv">3</span></p>
<p><span class="dv">2017-01-09</span> <span class="dv">4</span> <span class="dv">5</span> <span class="dv">6</span> <span class="dv">7</span></p>
<p><span class="dv">2017-01-10</span> <span class="dv">8</span> <span class="dv">9</span> <span class="dv">10</span> <span class="dv">11</span></p>
<p><span class="dv">2017-01-11</span> <span class="dv">12</span> <span class="dv">13</span> <span class="dv">14</span> <span class="dv">15</span></p>
<p><span class="dv">2017-01-12</span> <span class="dv">16</span> <span class="dv">17</span> <span class="dv">18</span> <span class="dv">19</span></p>
<p><span class="dv">2017-01-13</span> <span class="dv">20</span> <span class="dv">21</span> <span class="dv">22</span> <span class="dv">23</span></p>
<p>A列数据:</p>
<p><span class="dv">2017-01-08</span> <span class="dv">0</span></p>
<p><span class="dv">2017-01-09</span> <span class="dv">4</span></p>
<p><span class="dv">2017-01-10</span> <span class="dv">8</span></p>
<p><span class="dv">2017-01-11</span> <span class="dv">12</span></p>
<p><span class="dv">2017-01-12</span> <span class="dv">16</span></p>
<p><span class="dv">2017-01-13</span> <span class="dv">20</span></p>
<p>Freq: D, Name: A, dtype: int32</code></pre></p>
<p> </div> </p>
<p> <p>也可以用点符号来进行:</p> </p>
<p> <div class="sourceCode"></p>
<p> <pre class="sourceCode
PYTHON"><code class="sourceCode
PYTHON"><span class="bu">print</span>(data.A)</code></pre></p>
<p> </div> </p>
<p> <p>上面的功能跟data[&quot;A&quot;]一样。</p> </p>
<p> <h1 id="选择某几行数据">选择某几行数据</h1> </p>
<p> <div class="sourceCode"></p>
<p> <pre class="sourceCode
PYTHON"><code class="sourceCode
PYTHON"><span class="im">import</span> pandas <span class="im">as</span> pd</p>
<p><span class="im">import</span> numpy <span class="im">as</span> np</p>
<p>dates <span class="op">=</span> pd.date_range(<span class="st">&quot;2017-01-08&quot;</span>, periods<span class="op">=</span><span class="dv">6</span>)</p>
<p>data <span class="op">=</span> pd.DataFrame(np.arange(<span class="dv">24</span>).reshape(<span class="dv">6</span>, <span class="dv">4</span>), index<span class="op">=</span>dates, columns<span class="op">=</span>[<span class="st">&quot;A&quot;</span>, <span class="st">&quot;B&quot;</span>, <span class="st">&quot;C&quot;</span>, <span class="st">&quot;D&quot;</span>])</p>
<p><span class="bu">print</span>(<span class="st">&quot;data:&quot;</span>)</p>
<p><span class="bu">print</span>(data)</p>
<p> </p>
<p><span class="bu">print</span>(<span class="st">&quot;选择0至3行的数据:&quot;</span>)</p>
<p><span class="bu">print</span>(data[<span class="dv">0</span>:<span class="dv">3</span>])</code></pre></p>
<p> </div> </p>
<p> <p>输出为:</p> </p>
<p> <div class="sourceCode"></p>
<p> <pre class="sourceCode
PYTHON"><code class="sourceCode
PYTHON">data:</p>
<p> A B C D</p>
<p><span class="dv">2017-01-08</span> <span class="dv">0</span> <span class="dv">1</span> <span class="dv">2</span> <span class="dv">3</span></p>
<p><span class="dv">2017-01-09</span> <span class="dv">4</span> <span class="dv">5</span> <span class="dv">6</span> <span class="dv">7</span></p>
<p><span class="dv">2017-01-10</span> <span class="dv">8</span> <span class="dv">9</span> <span class="dv">10</span> <span class="dv">11</span></p>
<p><span class="dv">2017-01-11</span> <span class="dv">12</span> <span class="dv">13</span> <span class="dv">14</span> <span class="dv">15</span></p>
<p><span class="dv">2017-01-12</span> <span class="dv">16</span> <span class="dv">17</span> <span class="dv">18</span> <span class="dv">19</span></p>
<p><span class="dv">2017-01-13</span> <span class="dv">20</span> <span class="dv">21</span> <span class="dv">22</span> <span class="dv">23</span></p>
<p>选择<span class="dv">0</span>至<span class="dv">3</span>行的数据:</p>
<p> A B C D</p>
<p><span class="dv">2017-01-08</span> <span class="dv">0</span> <span class="dv">1</span> <span class="dv">2</span> <span class="dv">3</span></p>
<p><span class="dv">2017-01-09</span> <span class="dv">4</span> <span class="dv">5</span> <span class="dv">6</span> <span class="dv">7</span></p>
<p><span class="dv">2017-01-10</span> <span class="dv">8</span> <span class="dv">9</span> <span class="dv">10</span> <span class="dv">11</span></code></pre></p>
<p> </div> </p>
<p> <p>也可以根据索引号范围来选择某几行的数据。<br /> 比如,如下的例子中我们就选择出2017-01-10到2017-01-12的数据:</p> </p>
<p> <div class="sourceCode"></p>
<p> <pre class="sourceCode
PYTHON"><code class="sourceCode
PYTHON"><span class="im">import</span> pandas <span class="im">as</span> pd</p>
<p><span class="im">import</span> numpy <span class="im">as</span> np</p>
<p>dates <span class="op">=</span> pd.date_range(<span class="st">&quot;2017-01-08&quot;</span>, periods<span class="op">=</span><span class="dv">6</span>)</p>
<p>data <span class="op">=</span> pd.DataFrame(np.arange(<span class="dv">24</span>).reshape(<span class="dv">6</span>, <span class="dv">4</span>), index<span class="op">=</span>dates, columns<span class="op">=</span>[<span class="st">&quot;A&quot;</span>, <span class="st">&quot;B&quot;</span>, <span class="st">&quot;C&quot;</span>, <span class="st">&quot;D&quot;</span>])</p>
<p><span class="bu">print</span>(<span class="st">&quot;data:&quot;</span>)</p>
<p><span class="bu">print</span>(data)</p>
<p> </p>
<p><span class="bu">print</span>(<span class="st">&quot;按照索引选择数据:&quot;</span>)</p>
<p><span class="bu">print</span>(data[<span class="st">&quot;2017-01-10&quot;</span>:<span class="st">&quot;2017-01-12&quot;</span>])</code></pre></p>
<p> </div> </p>
<p> <p>输出为:</p> </p>
<p> <div class="sourceCode"></p>
<p> <pre class="sourceCode
PYTHON"><code class="sourceCode
PYTHON">data:</p>
<p> A B C D</p>
<p><span class="dv">2017-01-08</span> <span class="dv">0</span> <span class="dv">1</span> <span class="dv">2</span> <span class="dv">3</span></p>
<p><span class="dv">2017-01-09</span> <span class="dv">4</span> <span class="dv">5</span> <span class="dv">6</span> <span class="dv">7</span></p>
<p><span class="dv">2017-01-10</span> <span class="dv">8</span> <span class="dv">9</span> <span class="dv">10</span> <span class="dv">11</span></p>
<p><span class="dv">2017-01-11</span> <span class="dv">12</span> <span class="dv">13</span> <span class="dv">14</span> <span class="dv">15</span></p>
<p><span class="dv">2017-01-12</span> <span class="dv">16</span> <span class="dv">17</span> <span class="dv">18</span> <span class="dv">19</span></p>
<p><span class="dv">2017-01-13</span> <span class="dv">20</span> <span class="dv">21</span> <span class="dv">22</span> <span class="dv">23</span></p>
<p>按照索引选择数据:</p>
<p> A B C D</p>
<p><span class="dv">2017-01-10</span> <span class="dv">8</span> <span class="dv">9</span> <span class="dv">10</span> <span class="dv">11</span></p>
<p><span class="dv">2017-01-11</span> <span class="dv">12</span> <span class="dv">13</span> <span class="dv">14</span> <span class="dv">15</span></p>
<p><span class="dv">2017-01-12</span> <span class="dv">16</span> <span class="dv">17</span> <span class="dv">18</span> <span class="dv">19</span></code></pre></p>
<p> </div> </p>
<p> <h1 id="使用loc进行选择">使用loc进行选择</h1> </p>
<p> <p>使用loc选择某几行的数据:</p> </p>
<p> <div class="sourceCode"></p>
<p> <pre class="sourceCode
PYTHON"><code class="sourceCode
PYTHON"><span class="im">import</span> pandas <span class="im">as</span> pd</p>
<p><span class="im">import</span> numpy <span class="im">as</span> np</p>
<p>dates <span class="op">=</span> pd.date_range(<span class="st">&quot;2017-01-08&quot;</span>, periods<span class="op">=</span><span class="dv">6</span>)</p>
<p>data <span class="op">=</span> pd.DataFrame(np.arange(<span class="dv">24</span>).reshape(<span class="dv">6</span>, <span class="dv">4</span>), index<span class="op">=</span>dates, columns<span class="op">=</span>[<span class="st">&quot;A&quot;</span>, <span class="st">&quot;B&quot;</span>, <span class="st">&quot;C&quot;</span>, <span class="st">&quot;D&quot;</span>])</p>
<p><span class="bu">print</span>(<span class="st">&quot;data:&quot;</span>)</p>
<p><span class="bu">print</span>(data)</p>
<p> </p>
<p><span class="bu">print</span>(<span class="st">&quot;按照索引选择数据:&quot;</span>)</p>
<p><span class="bu">print</span>(data.loc[<span class="st">&quot;2017-01-10&quot;</span>:<span class="st">&quot;2017-01-12&quot;</span>])</code></pre></p>
<p> </div> </p>
<p> <p>输出:</p> </p>
<p> <div class="sourceCode"></p>
<p> <pre class="sourceCode
PYTHON"><code class="sourceCode
PYTHON">data:</p>
<p> A B C D</p>
<p><span class="dv">2017-01-08</span> <span class="dv">0</span> <span class="dv">1</span> <span class="dv">2</span> <span class="dv">3</span></p>
<p><span class="dv">2017-01-09</span> <span class="dv">4</span> <span class="dv">5</span> <span class="dv">6</span> <span class="dv">7</span></p>
<p><span class="dv">2017-01-10</span> <span class="dv">8</span> <span class="dv">9</span> <span class="dv">10</span> <span class="dv">11</span></p>
<p><span class="dv">2017-01-11</span> <span class="dv">12</span> <span class="dv">13</span> <span class="dv">14</span> <span class="dv">15</span></p>
<p><span class="dv">2017-01-12</span> <span class="dv">16</span> <span class="dv">17</span> <span class="dv">18</span> <span class="dv">19</span></p>
<p><span class="dv">2017-01-13</span> <span class="dv">20</span> <span class="dv">21</span> <span class="dv">22</span> <span class="dv">23</span></p>
<p>按照索引选择数据:</p>
<p> A B C D</p>
<p><span class="dv">2017-01-10</span> <span class="dv">8</span> <span class="dv">9</span> <span class="dv">10</span> <span class="dv">11</span></p>
<p><span class="dv">2017-01-11</span> <span class="dv">12</span> <span class="dv">13</span> <span class="dv">14</span> <span class="dv">15</span></p>
<p><span class="dv">2017-01-12</span> <span class="dv">16</span> <span class="dv">17</span> <span class="dv">18</span> <span class="dv">19</span></code></pre></p>
<p> </div> </p>
<p> <p>也可以按照列进行选择数据,比如,我们想要选择其中B和C列的数据:</p> </p>
<p> <div class="sourceCode"></p>
<p> <pre class="sourceCode
PYTHON"><code class="sourceCode
PYTHON"><span class="im">import</span> pandas <span class="im">as</span> pd</p>
<p><span class="im">import</span> numpy <span class="im">as</span> np</p>
<p>dates <span class="op">=</span> pd.date_range(<span class="st">&quot;2017-01-08&quot;</span>, periods<span class="op">=</span><span class="dv">6</span>)</p>
<p>data <span class="op">=</span> pd.DataFrame(np.arange(<span class="dv">24</span>).reshape(<span class="dv">6</span>, <span class="dv">4</span>), index<span class="op">=</span>dates, columns<span class="op">=</span>[<span class="st">&quot;A&quot;</span>, <span class="st">&quot;B&quot;</span>, <span class="st">&quot;C&quot;</span>, <span class="st">&quot;D&quot;</span>])</p>
<p><span class="bu">print</span>(<span class="st">&quot;data:&quot;</span>)</p>
<p><span class="bu">print</span>(data)</p>
<p> </p>
<p><span class="bu">print</span>(<span class="st">&quot;选择某两列的数据:&quot;</span>)</p>
<p><span class="bu">print</span>(data.loc[:, [<span class="st">&quot;B&quot;</span>, <span class="st">&quot;C&quot;</span>]])</code></pre></p>
<p> </div> </p>
<p> <p>输出为:</p> </p>
<p> <div class="sourceCode"></p>
<p> <pre class="sourceCode
PYTHON"><code class="sourceCode
PYTHON">data:</p>
<p> A B C D</p>
<p><span class="dv">2017-01-08</span> <span class="dv">0</span> <span class="dv">1</span> <span class="dv">2</span> <span class="dv">3</span></p>
<p><span class="dv">2017-01-09</span> <span class="dv">4</span> <span class="dv">5</span> <span class="dv">6</span> <span class="dv">7</span></p>
<p><span class="dv">2017-01-10</span> <span class="dv">8</span> <span class="dv">9</span> <span class="dv">10</span> <span class="dv">11</span></p>
<p><span class="dv">2017-01-11</span> <span class="dv">12</span> <span class="dv">13</span> <span class="dv">14</span> <span class="dv">15</span></p>
<p><span class="dv">2017-01-12</span> <span class="dv">16</span> <span class="dv">17</span> <span class="dv">18</span> <span class="dv">19</span></p>
<p><span class="dv">2017-01-13</span> <span class="dv">20</span> <span class="dv">21</span> <span class="dv">22</span> <span class="dv">23</span></p>
<p>选择某两列的数据:</p>
<p> B C</p>
<p><span class="dv">2017-01-08</span> <span class="dv">1</span> <span class="dv">2</span></p>
<p><span class="dv">2017-01-09</span> <span class="dv">5</span> <span class="dv">6</span></p>
<p><span class="dv">2017-01-10</span> <span class="dv">9</span> <span class="dv">10</span></p>
<p><span class="dv">2017-01-11</span> <span class="dv">13</span> <span class="dv">14</span></p>
<p><span class="dv">2017-01-12</span> <span class="dv">17</span> <span class="dv">18</span></p>
<p><span class="dv">2017-01-13</span> <span class="dv">21</span> <span class="dv">22</span></code></pre></p>
<p> </div> </p>
<p> <p>如果只想选择某几行中某几列的数据,可以对上面的例子进行一下稍微的修改就能实现:</p> </p>
<p> <div class="sourceCode"></p>
<p> <pre class="sourceCode
PYTHON"><code class="sourceCode
PYTHON"><span class="im">import</span> pandas <span class="im">as</span> pd</p>
<p><span class="im">import</span> numpy <span class="im">as</span> np</p>
<p>dates <span class="op">=</span> pd.date_range(<span class="st">&quot;2017-01-08&quot;</span>, periods<span class="op">=</span><span class="dv">6</span>)</p>
<p>data <span class="op">=</span> pd.DataFrame(np.arange(<span class="dv">24</span>).reshape(<span class="dv">6</span>, <span class="dv">4</span>), index<span class="op">=</span>dates, columns<span class="op">=</span>[<span class="st">&quot;A&quot;</span>, <span class="st">&quot;B&quot;</span>, <span class="st">&quot;C&quot;</span>, <span class="st">&quot;D&quot;</span>])</p>
<p><span class="bu">print</span>(<span class="st">&quot;data:&quot;</span>)</p>
<p><span class="bu">print</span>(data)</p>
<p> </p>
<p><span class="bu">print</span>(<span class="st">&quot;选择某几行某几列的数据:&quot;</span>)</p>
<p><span class="bu">print</span>(data.loc[<span class="st">&quot;2017-01-09&quot;</span>:<span class="st">&quot;2017-01-12&quot;</span>, [<span class="st">&quot;B&quot;</span>, <span class="st">&quot;C&quot;</span>]])</code></pre></p>
<p> </div> </p>
<p> <p>输出为:</p> </p>
<p> <div class="sourceCode"></p>
<p> <pre class="sourceCode
PYTHON"><code class="sourceCode
PYTHON">data:</p>
<p> A B C D</p>
<p><span class="dv">2017-01-08</span> <span class="dv">0</span> <span class="dv">1</span> <span class="dv">2</span> <span class="dv">3</span></p>
<p><span class="dv">2017-01-09</span> <span class="dv">4</span> <span class="dv">5</span> <span class="dv">6</span> <span class="dv">7</span></p>
<p><span class="dv">2017-01-10</span> <span class="dv">8</span> <span class="dv">9</span> <span class="dv">10</span> <span class="dv">11</span></p>
<p><span class="dv">2017-01-11</span> <span class="dv">12</span> <span class="dv">13</span> <span class="dv">14</span> <span class="dv">15</span></p>
<p><span class="dv">2017-01-12</span> <span class="dv">16</span> <span class="dv">17</span> <span class="dv">18</span> <span class="dv">19</span></p>
<p><span class="dv">2017-01-13</span> <span class="dv">20</span> <span class="dv">21</span> <span class="dv">22</span> <span class="dv">23</span></p>
<p>选择某几行某几列的数据:</p>
<p> B C</p>
<p><span class="dv">2017-01-09</span> <span class="dv">5</span> <span class="dv">6</span></p>
<p><span class="dv">2017-01-10</span> <span class="dv">9</span> <span class="dv">10</span></p>
<p><span class="dv">2017-01-11</span> <span class="dv">13</span> <span class="dv">14</span></p>
<p><span class="dv">2017-01-12</span> <span class="dv">17</span> <span class="dv">18</span></code></pre></p>
<p> </div> </p>
<p> <h1 id="根据位置索引选择数据">根据位置索引选择数据</h1> </p>
<p> <p>位置索引的方法为iloc,例如,选择第3行第2列的数据:</p> </p>
<p> <div class="sourceCode"></p>
<p> <pre class="sourceCode
PYTHON"><code class="sourceCode
PYTHON"><span class="im">import</span> pandas <span class="im">as</span> pd</p>
<p><span class="im">import</span> numpy <span class="im">as</span> np</p>
<p>dates <span class="op">=</span> pd.date_range(<span class="st">&quot;2017-01-08&quot;</span>, periods<span class="op">=</span><span class="dv">6</span>)</p>
<p>data <span class="op">=</span> pd.DataFrame(np.arange(<span class="dv">24</span>).reshape(<span class="dv">6</span>, <span class="dv">4</span>), index<span class="op">=</span>dates, columns<span class="op">=</span>[<span class="st">&quot;A&quot;</span>, <span class="st">&quot;B&quot;</span>, <span class="st">&quot;C&quot;</span>, <span class="st">&quot;D&quot;</span>])</p>
<p><span class="bu">print</span>(<span class="st">&quot;data:&quot;</span>)</p>
<p><span class="bu">print</span>(data)</p>
<p> </p>
<p><span class="bu">print</span>(<span class="st">&quot;选择第3行第2列的数据:&quot;</span>)</p>
<p><span class="bu">print</span>(data.iloc[<span class="dv">3</span>, <span class="dv">1</span>])</code></pre></p>
<p> </div> </p>
<p> <p>输出:</p> </p>
<p> <div class="sourceCode"></p>
<p> <pre class="sourceCode
PYTHON"><code class="sourceCode
PYTHON">data:</p>
<p> A B C D</p>
<p><span class="dv">2017-01-08</span> <span class="dv">0</span> <span class="dv">1</span> <span class="dv">2</span> <span class="dv">3</span></p>
<p><span class="dv">2017-01-09</span> <span class="dv">4</span> <span class="dv">5</span> <span class="dv">6</span> <span class="dv">7</span></p>
<p><span class="dv">2017-01-10</span> <span class="dv">8</span> <span class="dv">9</span> <span class="dv">10</span> <span class="dv">11</span></p>
<p><span class="dv">2017-01-11</span> <span class="dv">12</span> <span class="dv">13</span> <span class="dv">14</span> <span class="dv">15</span></p>
<p><span class="dv">2017-01-12</span> <span class="dv">16</span> <span class="dv">17</span> <span class="dv">18</span> <span class="dv">19</span></p>
<p><span class="dv">2017-01-13</span> <span class="dv">20</span> <span class="dv">21</span> <span class="dv">22</span> <span class="dv">23</span></p>
<p>选择第<span class="dv">3</span>行第<span class="dv">2</span>位的数据:</p>
<p><span class="dv">2017-01-11</span> <span class="dv">13</span></p>
<p><span class="dv">2017-01-12</span> <span class="dv">17</span></p>
<p><span class="dv">2017-01-13</span> <span class="dv">21</span></p>
<p>Freq: D, Name: B, dtype: int32</code></pre></p>
<p> </div> </p>
<p> <p>当然,我们也可以在iloc中使用切片,比如,我想选择出从第3行之后的第2列数据:</p> </p>
<p> <div class="sourceCode"></p>
<p> <pre class="sourceCode
PYTHON"><code class="sourceCode
PYTHON"><span class="im">import</span> pandas <span class="im">as</span> pd</p>
<p><span class="im">import</span> numpy <span class="im">as</span> np</p>
<p>dates <span class="op">=</span> pd.date_range(<span class="st">&quot;2017-01-08&quot;</span>, periods<span class="op">=</span><span class="dv">6</span>)</p>
<p>data <span class="op">=</span> pd.DataFrame(np.arange(<span class="dv">24</span>).reshape(<span class="dv">6</span>, <span class="dv">4</span>), index<span class="op">=</span>dates, columns<span class="op">=</span>[<span class="st">&quot;A&quot;</span>, <span class="st">&quot;B&quot;</span>, <span class="st">&quot;C&quot;</span>, <span class="st">&quot;D&quot;</span>])</p>
<p><span class="bu">print</span>(<span class="st">&quot;data:&quot;</span>)</p>
<p><span class="bu">print</span>(data)</p>
<p> </p>
<p><span class="bu">print</span>(<span class="st">&quot;选择第3行之后第2列的数据:&quot;</span>)</p>
<p><span class="bu">print</span>(data.iloc[<span class="dv">3</span>:, <span class="dv">1</span>])</code></pre></p>
<p> </div> </p>
<p> <p>输出为:</p> </p>
<p> <div class="sourceCode"></p>
<p> <pre class="sourceCode
PYTHON"><code class="sourceCode
PYTHON">data:</p>
<p> A B C D</p>
<p><span class="dv">2017-01-08</span> <span class="dv">0</span> <span class="dv">1</span> <span class="dv">2</span> <span class="dv">3</span></p>
<p><span class="dv">2017-01-09</span> <span class="dv">4</span> <span class="dv">5</span> <span class="dv">6</span> <span class="dv">7</span></p>
<p><span class="dv">2017-01-10</span> <span class="dv">8</span> <span class="dv">9</span> <span class="dv">10</span> <span class="dv">11</span></p>
<p><span class="dv">2017-01-11</span> <span class="dv">12</span> <span class="dv">13</span> <span class="dv">14</span> <span class="dv">15</span></p>
<p><span class="dv">2017-01-12</span> <span class="dv">16</span> <span class="dv">17</span> <span class="dv">18</span> <span class="dv">19</span></p>
<p><span class="dv">2017-01-13</span> <span class="dv">20</span> <span class="dv">21</span> <span class="dv">22</span> <span class="dv">23</span></p>
<p>选择第<span class="dv">3</span>行之后第<span class="dv">2</span>列的数据:</p>
<p><span class="dv">2017-01-11</span> <span class="dv">13</span></p>
<p><span class="dv">2017-01-12</span> <span class="dv">17</span></p>
<p><span class="dv">2017-01-13</span> <span class="dv">21</span></p>
<p>Freq: D, Name: B, dtype: int32</code></pre></p>
<p> </div> </p>
<p> <p>我们也可以单独地选择某几行的数据,例如:</p> </p>
<p> <div class="sourceCode"></p>
<p> <pre class="sourceCode
PYTHON"><code class="sourceCode
PYTHON"><span class="im">import</span> pandas <span class="im">as</span> pd</p>
<p><span class="im">import</span> numpy <span class="im">as</span> np</p>
<p>dates <span class="op">=</span> pd.date_range(<span class="st">&quot;2017-01-08&quot;</span>, periods<span class="op">=</span><span class="dv">6</span>)</p>
<p>data <span class="op">=</span> pd.DataFrame(np.arange(<span class="dv">24</span>).reshape(<span class="dv">6</span>, <span class="dv">4</span>), index<span class="op">=</span>dates, columns<span class="op">=</span>[<span class="st">&quot;A&quot;</span>, <span class="st">&quot;B&quot;</span>, <span class="st">&quot;C&quot;</span>, <span class="st">&quot;D&quot;</span>])</p>
<p><span class="bu">print</span>(<span class="st">&quot;data:&quot;</span>)</p>
<p><span class="bu">print</span>(data)</p>
<p> </p>
<p><span class="bu">print</span>(<span class="st">&quot;选择第1,3,5行第1到第3列的数据:&quot;</span>)</p>
<p><span class="bu">print</span>(data.iloc[[<span class="dv">1</span>, <span class="dv">3</span>, <span class="dv">5</span>], <span class="dv">1</span>:<span class="dv">3</span>])</code></pre></p>
<p> </div> </p>
<p> <div class="sourceCode"></p>
<p> <pre class="sourceCode
PYTHON"><code class="sourceCode
PYTHON">data:</p>
<p> A B C D</p>
<p><span class="dv">2017-01-08</span> <span class="dv">0</span> <span class="dv">1</span> <span class="dv">2</span> <span class="dv">3</span></p>
<p><span class="dv">2017-01-09</span> <span class="dv">4</span> <span class="dv">5</span> <span class="dv">6</span> <span class="dv">7</span></p>
<p><span class="dv">2017-01-10</span> <span class="dv">8</span> <span class="dv">9</span> <span class="dv">10</span> <span class="dv">11</span></p>
<p><span class="dv">2017-01-11</span> <span class="dv">12</span> <span class="dv">13</span> <span class="dv">14</span> <span class="dv">15</span></p>
<p><span class="dv">2017-01-12</span> <span class="dv">16</span> <span class="dv">17</span> <span class="dv">18</span> <span class="dv">19</span></p>
<p><span class="dv">2017-01-13</span> <span class="dv">20</span> <span class="dv">21</span> <span class="dv">22</span> <span class="dv">23</span></p>
<p>选择第<span class="dv">3</span>行之后第<span class="dv">2</span>列的数据:</p>
<p> B C</p>
<p><span class="dv">2017-01-09</span> <span class="dv">5</span> <span class="dv">6</span></p>
<p><span class="dv">2017-01-11</span> <span class="dv">13</span> <span class="dv">14</span></p>
<p><span class="dv">2017-01-13</span> <span class="dv">21</span> <span class="dv">22</span></code></pre></p>
<p> </div> </p>
<p> <h1 id="标签和位置混合筛选">标签和位置混合筛选</h1> </p>
<p> <p>比如行用数字来筛选,而列用标签来进行筛选,例如:</p> </p>
<p> <div class="sourceCode"></p>
<p> <pre class="sourceCode
PYTHON"><code class="sourceCode
PYTHON"><span class="im">import</span> pandas <span class="im">as</span> pd</p>
<p><span class="im">import</span> numpy <span class="im">as</span> np</p>
<p>dates <span class="op">=</span> pd.date_range(<span class="st">&quot;2017-01-08&quot;</span>, periods<span class="op">=</span><span class="dv">6</span>)</p>
<p>data <span class="op">=</span> pd.DataFrame(np.arange(<span class="dv">24</span>).reshape(<span class="dv">6</span>, <span class="dv">4</span>), index<span class="op">=</span>dates, columns<span class="op">=</span>[<span class="st">&quot;A&quot;</span>, <span class="st">&quot;B&quot;</span>, <span class="st">&quot;C&quot;</span>, <span class="st">&quot;D&quot;</span>])</p>
<p><span class="bu">print</span>(<span class="st">&quot;data:&quot;</span>)</p>
<p><span class="bu">print</span>(data)</p>
<p> </p>
<p><span class="bu">print</span>(<span class="st">&quot;选择第1,3,5行第1到第3列的数据:&quot;</span>)</p>
<p><span class="bu">print</span>(data.ix[[<span class="dv">1</span>, <span class="dv">3</span>, <span class="dv">5</span>], [<span class="st">&quot;A&quot;</span>, <span class="st">&quot;C&quot;</span>]])</code></pre></p>
<p> </div> </p>
<p> <p>输出为:</p> </p>
<p> <div class="sourceCode"></p>
<p> <pre class="sourceCode
PYTHON"><code class="sourceCode
PYTHON">data:</p>
<p> A B C D</p>
<p><span class="dv">2017-01-08</span> <span class="dv">0</span> <span class="dv">1</span> <span class="dv">2</span> <span class="dv">3</span></p>
<p><span class="dv">2017-01-09</span> <span class="dv">4</span> <span class="dv">5</span> <span class="dv">6</span> <span class="dv">7</span></p>
<p><span class="dv">2017-01-10</span> <span class="dv">8</span> <span class="dv">9</span> <span class="dv">10</span> <span class="dv">11</span></p>
<p><span class="dv">2017-01-11</span> <span class="dv">12</span> <span class="dv">13</span> <span class="dv">14</span> <span class="dv">15</span></p>
<p><span class="dv">2017-01-12</span> <span class="dv">16</span> <span class="dv">17</span> <span class="dv">18</span> <span class="dv">19</span></p>
<p><span class="dv">2017-01-13</span> <span class="dv">20</span> <span class="dv">21</span> <span class="dv">22</span> <span class="dv">23</span></p>
<p>选择第<span class="dv">1</span>,<span class="dv">3</span>,<span class="dv">5</span>行第<span class="dv">1</span>到第<span class="dv">3</span>列的数据:</p>
<p> A C</p>
<p><span class="dv">2017-01-09</span> <span class="dv">4</span> <span class="dv">6</span></p>
<p><span class="dv">2017-01-11</span> <span class="dv">12</span> <span class="dv">14</span></p>
<p><span class="dv">2017-01-13</span> <span class="dv">20</span> <span class="dv">22</span></code></pre></p>
<p> </div> </p>
<p> <h1 id="根据某列中的数值进行筛选">根据某列中的数值进行筛选</h1> </p>
<p> <p>类似于SQL中where column &lt; xxx这种类型的选择。<br /> 例如,选择出A列小于8的数据:</p> </p>
<p> <div class="sourceCode"></p>
<p> <pre class="sourceCode
PYTHON"><code class="sourceCode
PYTHON"><span class="im">import</span> pandas <span class="im">as</span> pd</p>
<p><span class="im">import</span> numpy <span class="im">as</span> np</p>
<p>dates <span class="op">=</span> pd.date_range(<span class="st">&quot;2017-01-08&quot;</span>, periods<span class="op">=</span><span class="dv">6</span>)</p>
<p>data <span class="op">=</span> pd.DataFrame(np.arange(<span class="dv">24</span>).reshape(<span class="dv">6</span>, <span class="dv">4</span>), index<span class="op">=</span>dates, columns<span class="op">=</span>[<span class="st">&quot;A&quot;</span>, <span class="st">&quot;B&quot;</span>, <span class="st">&quot;C&quot;</span>, <span class="st">&quot;D&quot;</span>])</p>
<p><span class="bu">print</span>(<span class="st">&quot;data:&quot;</span>)</p>
<p><span class="bu">print</span>(data)</p>
<p> </p>
<p><span class="bu">print</span>(<span class="st">&quot;根据某列中的数值进行筛选:&quot;</span>)</p>
<p><span class="bu">print</span>(data[data.A <span class="op">&lt;</span> <span class="dv">8</span>])</code></pre></p>
<p> </div> </p>
<p> <p>输出为:</p> </p>
<p> <div class="sourceCode"></p>
<p> <pre class="sourceCode
PYTHON"><code class="sourceCode
PYTHON">data:</p>
<p> A B C D</p>
<p><span class="dv">2017-01-08</span> <span class="dv">0</span> <span class="dv">1</span> <span class="dv">2</span> <span class="dv">3</span></p>
<p><span class="dv">2017-01-09</span> <span class="dv">4</span> <span class="dv">5</span> <span class="dv">6</span> <span class="dv">7</span></p>
<p><span class="dv">2017-01-10</span> <span class="dv">8</span> <span class="dv">9</span> <span class="dv">10</span> <span class="dv">11</span></p>
<p><span class="dv">2017-01-11</span> <span class="dv">12</span> <span class="dv">13</span> <span class="dv">14</span> <span class="dv">15</span></p>
<p><span class="dv">2017-01-12</span> <span class="dv">16</span> <span class="dv">17</span> <span class="dv">18</span> <span class="dv">19</span></p>
<p><span class="dv">2017-01-13</span> <span class="dv">20</span> <span class="dv">21</span> <span class="dv">22</span> <span class="dv">23</span></p>
<p>选择根据某列中的数值进行筛选:</p>
<p> A B C D</p>
<p><span class="dv">2017-01-08</span> <span class="dv">0</span> <span class="dv">1</span> <span class="dv">2</span> <span class="dv">3</span></p>
<p><span class="dv">2017-01-09</span> <span class="dv">4</span> <span class="dv">5</span> <span class="dv">6</span> <span class="dv">7</span></code></pre></p>
<p> </div> </p>
<p> <p>如果想要进行联合索引,比如where A&lt;8 and B &lt; 5,则:</p> </p>
<p> <div class="sourceCode"></p>
<p> <pre class="sourceCode
PYTHON"><code class="sourceCode
PYTHON"><span class="im">import</span> pandas <span class="im">as</span> pd</p>
<p><span class="im">import</span> numpy <span class="im">as</span> np</p>
<p>dates <span class="op">=</span> pd.date_range(<span class="st">&quot;2017-01-08&quot;</span>, periods<span class="op">=</span><span class="dv">6</span>)</p>
<p>data <span class="op">=</span> pd.DataFrame(np.arange(<span class="dv">24</span>).reshape(<span class="dv">6</span>, <span class="dv">4</span>), index<span class="op">=</span>dates, columns<span class="op">=</span>[<span class="st">&quot;A&quot;</span>, <span class="st">&quot;B&quot;</span>, <span class="st">&quot;C&quot;</span>, <span class="st">&quot;D&quot;</span>])</p>
<p><span class="bu">print</span>(<span class="st">&quot;data:&quot;</span>)</p>
<p><span class="bu">print</span>(data)</p>
<p> </p>
<p><span class="bu">print</span>(<span class="st">&quot;根据某列中的数值进行筛选:&quot;</span>)</p>
<p>data <span class="op">=</span> data[data.A <span class="op">&lt;</span> <span class="dv">8</span>]</p>
<p><span class="bu">print</span>(data[data.B <span class="op">&lt;</span> <span class="dv">5</span>])</code></pre></p>
<p> </div> </p>
<p> <p>输出为:</p> </p>
<p> <div class="sourceCode"></p>
<p> <pre class="sourceCode
PYTHON"><code class="sourceCode
PYTHON">data:</p>
<p> A B C D</p>
<p><span class="dv">2017-01-08</span> <span class="dv">0</span> <span class="dv">1</span> <span class="dv">2</span> <span class="dv">3</span></p>
<p><span class="dv">2017-01-09</span> <span class="dv">4</span> <span class="dv">5</span> <span class="dv">6</span> <span class="dv">7</span></p>
<p><span class="dv">2017-01-10</span> <span class="dv">8</span> <span class="dv">9</span> <span class="dv">10</span> <span class="dv">11</span></p>
<p><span class="dv">2017-01-11</span> <span class="dv">12</span> <span class="dv">13</span> <span class="dv">14</span> <span class="dv">15</span></p>
<p><span class="dv">2017-01-12</span> <span class="dv">16</span> <span class="dv">17</span> <span class="dv">18</span> <span class="dv">19</span></p>
<p><span class="dv">2017-01-13</span> <span class="dv">20</span> <span class="dv">21</span> <span class="dv">22</span> <span class="dv">23</span></p>
<p>根据某列中的数值进行筛选:</p>
<p> A B C D</p>
<p><span class="dv">2017-01-08</span> <span class="dv">0</span> <span class="dv">1</span> <span class="dv">2</span> <span class="dv">3</span></code></pre></p>
<p> </div> </p>
<p></div></p></div>
pandas选择数据-【老鱼学pandas】
猜你喜欢
转载自yule-maiyewang.iteye.com/blog/2406360
今日推荐
周排行