Python的数据导入
最后更新于:2024-10-26 20:51:28
介绍
大家好,欢迎来到我们的Python数据导入进阶课程。在这个视频中,我们将学习如何在Python项目中导入各种常见的数据格式,包括CSV、Excel、TXT和NPZ文件。我们会介绍基本的导入方法,并讨论一些重要的注意事项。让我们开始吧!
1. 导入CSV文件
CSV(逗号分隔值)文件是数据科学中最常见的数据格式之一。我们将使用pandas库来导入CSV文件。
import pandas as pd
# 基本读取CSV文件
df = pd.read_csv('data.csv')
# 显示前几行
print(df.head())
# 处理缺失值
df_missing = pd.read_csv('data_with_missing.csv', na_values=['NA', 'Missing'])
# 只读取特定的列
df_selected = pd.read_csv('data_large.csv', usecols=['id', 'name', 'value'])
注意事项:
- 始终检查CSV文件的分隔符。虽然逗号是最常见的,但有时也会遇到制表符(\t)或分号(;)分隔的文件。
- 使用
na_values
参数指定哪些值应被视为缺失值。 - 如果CSV文件没有标题行,使用
header=None
参数,并可以用names
参数指定列名。 - 对于大文件,考虑只读取需要的列来提高效率。
2. 导入Excel文件
Excel文件在商业环境中非常普遍。pandas提供了强大的工具来处理Excel文件。
import pandas as pd
# 读取Excel文件的第一个工作表
df_excel = pd.read_excel('data.xlsx')
# 读取特定的工作表
df_sheet = pd.read_excel('data.xlsx', sheet_name='Sheet2')
# 跳过前几行
df_skip = pd.read_excel('data.xlsx', skiprows=2)
# 读取特定范围的单元格
df_range = pd.read_excel('data.xlsx', usecols="B:D", skiprows=1, nrows=4)
print(df_excel.head())
注意事项:
- 确保已安装
openpyxl
库,特别是处理较新的.xlsx文件时。可以通过pip install openpyxl
安装。 - Excel文件可能包含多个工作表。使用
sheet_name
参数指定要读取的工作表。 - 要读取特定范围的单元格,可以结合使用
usecols
、skiprows
和nrows
参数。
usecols
指定列范围(如”B:D”表示B到D列)skiprows
指定要跳过的行数nrows
指定要读取的行数
- Excel文件可能包含格式化信息(如日期)。pandas会尝试自动解释这些格式,但有时可能需要手动指定。
3. 导入TXT文件
在这个例子中,我们将专注于处理只包含一列数据的TXT文件。
import pandas as pd
# 如果文件没有分隔符,每行就是一个值
df_txt_no_sep = pd.read_csv('single_column_no_separator.txt', header=None, names=['value'])
print(df_txt_no_sep.head())
注意事项:
- 对于单列数据,可以使用pandas的
read_csv()
函数,即使文件扩展名是.txt。 - 如果文件没有标题,使用
header=None
并通过names
参数指定列名。
4. 导入NPZ文件
NPZ文件是NumPy的压缩存档格式,通常用于高效地存储多个数值数组。
import numpy as np
# 加载NPZ文件
data = np.load('data.npz')
# 查看文件中包含的数组名称
print("Arrays in the NPZ file:", data.files)
# 访问文件中的特定数组
array1 = data['array1']
array2 = data['array2']
print("Shape of array1:", array1.shape)
print("Shape of array2:", array2.shape)
# 遍历并打印所有数组
for key in data.files:
print(f"\nArray '{key}':")
print(data[key])
# 关闭NPZ文件
data.close()
注意事项:
- NPZ文件可以包含多个命名数组。使用
files
属性查看所有数组的名称。 - 记得在使用完NPZ文件后关闭它。
- NPZ文件非常适合存储和加载大型数值数据集,因为它们是压缩的,可以节省空间。
- 注意内存使用:当你访问NPZ文件中的数组时,整个数组会被加载到内存中。