<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.9.5">Jekyll</generator><link href="https://sunnycl.github.io/feed.xml" rel="self" type="application/atom+xml" /><link href="https://sunnycl.github.io/" rel="alternate" type="text/html" /><updated>2024-04-23T08:20:19+00:00</updated><id>https://sunnycl.github.io/feed.xml</id><title type="html">个人博客</title><subtitle>记录日常技术学习内容
</subtitle><author><name>Sunny</name></author><entry><title type="html">机器学习</title><link href="https://sunnycl.github.io/2024/04/23/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0.html" rel="alternate" type="text/html" title="机器学习" /><published>2024-04-23T00:00:00+00:00</published><updated>2024-04-23T00:00:00+00:00</updated><id>https://sunnycl.github.io/2024/04/23/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0</id><content type="html" xml:base="https://sunnycl.github.io/2024/04/23/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0.html"><![CDATA[<p>Pandas 的主要数据结构是 Series （一维数据）与 DataFrame（二维数据）
<strong>Series</strong>： 类似于一维数组或列表，是由一组数据以及与之相关的数据标签（索引）构成。Series 可以看作是 DataFrame 中的一列，也可以是单独存在的一维数据结构。
<strong>DataFrame</strong>： 类似于一个二维表格，它是 Pandas 中最重要的数据结构。DataFrame 可以看作是由多个 Series 按列排列构成的表格，它既有行索引也有列索引，因此可以方便地进行行列选择、过滤、合并等操作。</p>
<h4 id="切片">切片</h4>
<p><strong>loc方法是通过行、列的名称或者标签来寻找我们需要的值。</strong></p>
<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1"># 读取第1行到第3行，第B列到第D列这个区域内的值
</span><span class="n">data4</span> <span class="o">=</span> <span class="n">data</span><span class="p">.</span><span class="n">loc</span><span class="p">[</span> <span class="mi">1</span><span class="p">:</span><span class="mi">3</span><span class="p">,</span> <span class="s">"B"</span><span class="p">:</span><span class="s">"D"</span><span class="p">]</span>
</code></pre></div></div>
<p><strong>iloc方法是通过索引行、列的索引位置[index, columns]来寻找值</strong></p>
<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1"># 按index和columns进行切片操作
# 读取第2、3行，第3、4列
</span><span class="n">data1</span> <span class="o">=</span> <span class="n">data</span><span class="p">.</span><span class="n">iloc</span><span class="p">[</span><span class="mi">1</span><span class="p">:</span><span class="mi">3</span><span class="p">,</span> <span class="mi">2</span><span class="p">:</span><span class="mi">4</span><span class="p">]</span>
</code></pre></div></div>
<h4 id="读取文件csv-json-txt-excel-xlsx">读取文件：CSV, json, txt, excel, xlsx</h4>
<p>| 函数 | 说明 |
| — | — |
| pd.read_csv(filename) | 读取 CSV 文件； |
| pd.read_excel(filename) | 读取 Excel 文件； |
| pd.read_sql(query, connection_object) | 从 SQL 数据库读取数据； |
| pd.read_json(json_string) | 从 JSON 字符串中读取数据； |
| pd.read_html(url) | 从 HTML 页面中读取数据。 |</p>

<h4 id="dropna删除包含空字段的行"><strong>dropna()</strong>删除包含空字段的行</h4>
<h3 id="pandas-清洗重复数据">Pandas 清洗重复数据</h3>
<p>如果我们要清洗重复数据，可以使用 <strong>duplicated()</strong> 和 <strong>drop_duplicates()</strong> 方法。</p>
<h3 id="pandas-清洗错误数据">Pandas 清洗错误数据</h3>
<p>数据错误也是很常见的情况，我们可以对错误的数据进行替换或移除。</p>
<h3 id="pandas-清洗格式错误数据">Pandas 清洗格式错误数据</h3>
<p>数据格式错误的单元格会使数据分析变得困难，甚至不可能。
我们可以通过包含空单元格的行，或者将列中的所有单元格转换为相同格式的数据。</p>
<h3 id="常见函数">常见函数</h3>
<p>| 函数 | 说明 |
| — | — |
| df.head(n) | 显示前 n 行数据； |
| df.tail(n) | 显示后 n 行数据； |
| df.info() | 显示数据的信息，包括列名、数据类型、缺失值等； |
| df.describe() | 显示数据的基本统计信息，包括均值、方差、最大值、最小值等； |
| df.shape | 显示数据的行数和列数。 |</p>

<table>
  <thead>
    <tr>
      <th>函数</th>
      <th>说明</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>df.dropna()</td>
      <td>删除包含缺失值的行或列；</td>
    </tr>
    <tr>
      <td>df.fillna(value)</td>
      <td>将缺失值替换为指定的值；</td>
    </tr>
    <tr>
      <td>df.replace(old_value, new_value)</td>
      <td>将指定值替换为新值；</td>
    </tr>
    <tr>
      <td>df.duplicated()</td>
      <td>检查是否有重复的数据；</td>
    </tr>
    <tr>
      <td>df.drop_duplicates()</td>
      <td>删除重复的数据。</td>
    </tr>
  </tbody>
</table>

<table>
  <thead>
    <tr>
      <th>函数</th>
      <th>说明</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>df[column_name]</td>
      <td>选择指定的列；</td>
    </tr>
    <tr>
      <td>df.loc[row_index, column_name]</td>
      <td>通过标签选择数据；</td>
    </tr>
    <tr>
      <td>df.iloc[row_index, column_index]</td>
      <td>通过位置选择数据；</td>
    </tr>
    <tr>
      <td>df.ix[row_index, column_name]</td>
      <td>通过标签或位置选择数据；</td>
    </tr>
    <tr>
      <td>df.filter(items=[column_name1, column_name2])</td>
      <td>选择指定的列；</td>
    </tr>
    <tr>
      <td>df.filter(regex=’regex’)</td>
      <td>选择列名匹配正则表达式的列；</td>
    </tr>
    <tr>
      <td>df.sample(n)</td>
      <td>随机选择 n 行数据。</td>
    </tr>
  </tbody>
</table>

<table>
  <thead>
    <tr>
      <th>函数</th>
      <th>说明</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>df.sort_values(column_name)</td>
      <td>按照指定列的值排序；</td>
    </tr>
    <tr>
      <td>df.sort_values([column_name1, column_name2], ascending=[True, False])</td>
      <td>按照多个列的值排序；</td>
    </tr>
    <tr>
      <td>df.sort_index()</td>
      <td>按照索引排序。</td>
    </tr>
  </tbody>
</table>

<table>
  <thead>
    <tr>
      <th>函数</th>
      <th>说明</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>pd.concat([df1, df2])</td>
      <td>将多个数据框按照行或列进行合并；</td>
    </tr>
    <tr>
      <td>pd.merge(df1, df2, on=column_name)</td>
      <td>按照指定列将两个数据框进行合并。</td>
    </tr>
  </tbody>
</table>]]></content><author><name>Sunny</name></author><summary type="html"><![CDATA[Pandas 的主要数据结构是 Series （一维数据）与 DataFrame（二维数据） Series： 类似于一维数组或列表，是由一组数据以及与之相关的数据标签（索引）构成。Series 可以看作是 DataFrame 中的一列，也可以是单独存在的一维数据结构。 DataFrame： 类似于一个二维表格，它是 Pandas 中最重要的数据结构。DataFrame 可以看作是由多个 Series 按列排列构成的表格，它既有行索引也有列索引，因此可以方便地进行行列选择、过滤、合并等操作。 切片 loc方法是通过行、列的名称或者标签来寻找我们需要的值。 # 读取第1行到第3行，第B列到第D列这个区域内的值 data4 = data.loc[ 1:3, "B":"D"] iloc方法是通过索引行、列的索引位置[index, columns]来寻找值 # 按index和columns进行切片操作 # 读取第2、3行，第3、4列 data1 = data.iloc[1:3, 2:4] 读取文件：CSV, json, txt, excel, xlsx | 函数 | 说明 | | — | — | | pd.read_csv(filename) | 读取 CSV 文件； | | pd.read_excel(filename) | 读取 Excel 文件； | | pd.read_sql(query, connection_object) | 从 SQL 数据库读取数据； | | pd.read_json(json_string) | 从 JSON 字符串中读取数据； | | pd.read_html(url) | 从 HTML 页面中读取数据。 | dropna()删除包含空字段的行 Pandas 清洗重复数据 如果我们要清洗重复数据，可以使用 duplicated() 和 drop_duplicates() 方法。 Pandas 清洗错误数据 数据错误也是很常见的情况，我们可以对错误的数据进行替换或移除。 Pandas 清洗格式错误数据 数据格式错误的单元格会使数据分析变得困难，甚至不可能。 我们可以通过包含空单元格的行，或者将列中的所有单元格转换为相同格式的数据。 常见函数 | 函数 | 说明 | | — | — | | df.head(n) | 显示前 n 行数据； | | df.tail(n) | 显示后 n 行数据； | | df.info() | 显示数据的信息，包括列名、数据类型、缺失值等； | | df.describe() | 显示数据的基本统计信息，包括均值、方差、最大值、最小值等； | | df.shape | 显示数据的行数和列数。 | 函数 说明 df.dropna() 删除包含缺失值的行或列； df.fillna(value) 将缺失值替换为指定的值； df.replace(old_value, new_value) 将指定值替换为新值； df.duplicated() 检查是否有重复的数据； df.drop_duplicates() 删除重复的数据。 函数 说明 df[column_name] 选择指定的列； df.loc[row_index, column_name] 通过标签选择数据； df.iloc[row_index, column_index] 通过位置选择数据； df.ix[row_index, column_name] 通过标签或位置选择数据； df.filter(items=[column_name1, column_name2]) 选择指定的列； df.filter(regex=’regex’) 选择列名匹配正则表达式的列； df.sample(n) 随机选择 n 行数据。 函数 说明 df.sort_values(column_name) 按照指定列的值排序； df.sort_values([column_name1, column_name2], ascending=[True, False]) 按照多个列的值排序； df.sort_index() 按照索引排序。 函数 说明 pd.concat([df1, df2]) 将多个数据框按照行或列进行合并； pd.merge(df1, df2, on=column_name) 按照指定列将两个数据框进行合并。]]></summary></entry></feed>