【pandas基础】--数据读取

pandas,基础,数据,读取 · 浏览次数 : 195

小编点评

**数据读取方法** pandas支持从多种数据源读取数据,包括 CSV、Excel、JSON、SQL、HTML。以下是主要介绍的读取方法: **1. 从 CSV 文件读取数据** ```python import pandas as pd # 加载 CSV 文件 df = pd.read_csv("/path/to/china-population.csv") # 显示前5条数据 df.head() ``` **2. 从 Excel 文件读取数据** ```python import pandas as pd # 加载 Excel 文件 df = pd.read_excel("/path/to/china-population.xlsx") # 显示前5条数据 df.head() ``` **3. 从网络中读取数据** 除了从本地文件中读取数据之外,pandas 也支持直接从 URL 读取数据。例如,以下代码从 "http://databook.top:8888/pandas/china-population.csv" 下载 CSV 文件: ```python import pandas as pddf df = pd.read_csv("http://databook.top:8888/pandas/china-population.csv") ``` **4. 设置列名称** 您可以设置列名称,以覆盖默认的逗号或其他符号。例如,以下代码设置 "年份" 和 "指标名称" 列的名称: ```python import pandas as pddf df = pd.read_csv("http://databook.top:8888/pandas/china-population-sep.csv", sep="|\", names=["年份数字", "指标编码", "指标名称"]) ``` **5. 随机生成数据** 如果您只想尝试 pandas 中的一些方法,而不创建数据源,可以使用 numpy 生成随机的二维矩阵,然后将其导入 pandas: ```python import pandas as pdimport numpy as npdata = np.random.rand(10,3) df = pd.DataFrame(data, columns=[\'data1', 'data2', 'data3']) ``` **总结** pandas 提供多种方法可以读取数据,根据您的需求选择最适合您的方法。

正文

数据读取是第一步,只有成功加载数据之后,后续的操作才有可能。

pandas可以读取和导入各种数据格式的数据,如CSV,Excel,JSON,SQL,HTML等,不需要手动编写复杂的读取代码。

1. 各类数据源

pandas提供了导入各类常用文件格式数据的接口,这里介绍3种最常用的加载数据的接口。

1.1 从 CSV 文件读取数据

读取csv文件的接口:read_csv()

import pandas as pd

# 此csv中包含一些中国人口的统计信息
df = pd.read_csv("/path/to/china-population.csv")

df.head() # 显示前5条数据

image.png

1.2 从 excel 文件读取数据

读取excel文件的接口:read_excel ()
读取excel文件时,默认读取第一个sheet中的数据。

import pandas as pd

# 此excel中的数据与上面csv文件中的一样
df = pd.read_excel("/path/to/china-population.xlsx")

df.head() # 显示前5条数据

image.png

1.3 从网络中读取数据

除了从本地文件中读取数据之外,read_csvread_excel也可以直接从URL读取数据。
比如,上面的csv文件和excel文件可以从下面的地址下载。
http://databook.top:8888/pandas/china-population.csv
http://databook.top:8888/pandas/china-population.xlsx

可以直接将URL传给 read_csvread_excel,不用下载保存本地。

import pandas as pd

df = pd.read_csv("http://databook.top:8888/pandas/china-population.csv")
df_excel = pd.read_excel("http://databook.top:8888/pandas/china-population.xlsx")

2. 不同分隔符

csv 文件中默认用逗号,分隔不同的字段,不过,也有很多csv文件不用逗号分隔,用其他生僻的符号来分隔。

import pandas as pd

df = pd.read_csv("http://databook.top:8888/pandas/china-population-sep.csv")
df.head()

image.png
文件china-population-sep.csv|来分隔不同的字段,直接读取的话,变成只有一个字段。

这时,要明确设置分隔符。

import pandas as pd

df = pd.read_csv("http://databook.top:8888/pandas/china-population-sep.csv", sep="|")
df.head()

image.png
这样就得到了正确的数据结构。

3. 设置列名称

除了可以设置分隔符之外,读取数据时,也可以设置列的名称。
上面的例子中,列的名称都是字母的缩写,读取文件时可以替换成中文名称。

import pandas as pd

df = pd.read_csv(
    "http://databook.top:8888/pandas/china-population-sep.csv",
    sep="|",
    names=["年份数字", "年份", "指标编码", "指标名称", "人口数"],
)
df.head()

image.png

通过names参数设置列的名称,names参数是个列表,其中元素的个数一般与列的数目保持一致。
如果names中元素个数少于列的数目,那么多出来的列会作为索引(关于索引index,后续会详细介绍)。

import pandas as pd

df = pd.read_csv(
    "http://databook.top:8888/pandas/china-population-sep.csv",
    sep="|",
    names=["指标编码", "指标名称", "人口数"],
)
df.head()

image.png

如果 names中元素个数多于列的数目,多出来的元素作为新增的空白列。

import pandas as pd

df = pd.read_csv(
    "http://databook.top:8888/pandas/china-population-sep.csv",
    sep="|",
    names=["年份数字", "年份", "指标编码", "指标名称", "人口数", "列名称", "列名称2"],
)
df.head()

image.png

上面的例子中,我们应该发现了一个问题,设置 names作为新的列名称之后,原有的列名称被当成了实际的数据。
也就是:
image.png

设置新的列名称时,如果数据中包含列名称的话,需要忽略掉这个名称。
设置 header=0,忽略作为标题的第一行。
如果文件本来就没有标题的话,设置 header=None

import pandas as pd

df = pd.read_csv(
    "http://databook.top:8888/pandas/china-population-sep.csv",
    sep="|",
    header=0,
    names=["年份数字", "年份", "指标编码", "指标名称", "人口数"],
)
df.head()

image.png

4. 随机生成数据

pandas支持从很多数据源读取数据,不过,有时候我们只想尝试尝试 pandas中的一些方法,并不想创建数据源。

这时,可以通过 numpy包创建一个随机的二维矩阵,直接将这个二维矩阵的数据导入 pandas即可。
下面的例子创建了一个10行3列的数据集。

import pandas as pd
import numpy as np

data = np.random.rand(10,3)
df = pd.DataFrame(data, columns=["data1", "data2", "data3"])
df.head()

image.png

通过临时创建的随机数据,可以尝试 pandas提供的各类接口。

5. 总结回顾

本篇了主要介绍了数据的读取方法,重点介绍的是 csv 文件的读取方式,因为这是最常用的数据源。
其他数据源的读取方式也大同小异,各种数据源的差异会体现在不同接口的参数上。

本文所用到的数据:

  1. http://databook.top:8888/pandas/china-population.csv
  2. http://databook.top:8888/pandas/china-population-sep.csv
  3. http://databook.top:8888/pandas/china-population.xlsx

本文关联的微信视频号短视频:
pandas01-数据读取.png

与【pandas基础】--数据读取相似的内容:

【pandas基础】--数据读取

数据读取是第一步,只有成功加载数据之后,后续的操作才有可能。 pandas可以读取和导入各种数据格式的数据,如CSV,Excel,JSON,SQL,HTML等,不需要手动编写复杂的读取代码。 1. 各类数据源 pandas提供了导入各类常用文件格式数据的接口,这里介绍3种最常用的加载数据的接口。 1

【pandas基础】--目录(完结)

pandas 基础内容的目录: 0. [概述](https://www.cnblogs.com/wang_yb/p/17367431.html) `pandas` 主要功能和应用场景的介绍。 1. [数据读取](https://www.cnblogs.com/wang_yb/p/17371731.h

【pandas基础】--数据整理

pandas进行数据整理的意义在于,它是数据分析、数据科学和机器学习的前置步骤。 通过数据整理可以提前了解数据的概要,缺失值、重复值等情况,为后续的分析和建模提供更为可靠的数据基础。 本篇主要介绍利用pandas进行数据整理的各种方法。 1. 数据概要 获取数据概要信息可以帮助我们了解数据的基本情况

【pandas基础】--数据修改

pandas 作为一种常用的数据分析工具,提供了广泛的数据修改方法。 既可以针对行或者列的数据进行修改,也可以对具体单个元素进行修改,还可以基于条件选择要修改的行或者列的数据。 1. 增加数据 1.1 增加行数据 pandas的DataFrame增加一行或者多行数据之前是使用append方法。 im

【pandas基础】--数据拆分与合并

数据集拆分是将一个大型的数据集拆分为多个较小的数据集,可以让数据更加清晰易懂,也方便对单个数据集进行分析和处理。 同时,分开的数据集也可以分别应用不同的数据分析方法进行处理,更加高效和专业。 数据集合并则是将多个数据集合并成一个大的数据集,可以提供更全面的信息,也可以进行更综合的数据分析。 同时,数

【pandas基础】--数据排序

`pandas`的数据排序可以帮助我们更好地理解和分析数据。 通过对数据进行排序,我们可以提取出特定的信息,例如最大值、最小值、中位数、众数等等,从而更准确地识别数据的特征和特点。 此外,数据排序还可以帮助我们更好地进行数据可视化,例如绘制直方图、箱线图等等,进一步帮助我们对数据进行解读和分析。 总

【pandas基础】--数据统计

在进行统计分析时,`pandas`提供了多种工具来帮助我们理解数据。 `pandas`提供了多个聚合函数,其中包括均值、标准差、最大值、最小值等等。 此外,`pandas`还可以进行基于列的统计分析,例如通过`groupby()`函数对数据进行聚合,并计算每组的统计分析结果。 除了基本的统计分析之外

【pandas基础】--日期处理

时间序列数据是数据分析中一类常见且重要的数据。 它们按照时间顺序记录,通常是从某些现象的观察中收集的,比如经济指标、气象数据、股票价格、销售数据等等。 时间序列数据的特点是有规律地随着时间变化而变化,它们的变化趋势可以被分析和预测。时间序列分析是一种用于预测未来值或评估过去值的统计方法,常常被用于预

【pandas基础】--核心数据结构

pandas中用来承载数据的两个最重要的结构分别是: Series:相当于增强版的一维数组 DataFrame:相当于增强版的二维数组 pandas最大的优势在于处理表格类数据,如果数据维度超过二维,一般我们会使用另一个 python的库 numpy。 本篇主要介绍这两种核心数据结构的创建方式。 1

【pandas基础】--数据类型

数据类型是计算机编程中将不同类型的数据值分类和定义的方式。 通过数据类型,可以确定数据的存储方式和内存占用量,了解不同类型的数据进行各种运算的能力。 使用`pandas`进行数据分析时,最常用到的几种类型是: 1. 字符串类型,各类文本内容都是字符串类型 2. 数值类型,包括整数和浮点数,可用于计算