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'])

注意事项:

  1. 始终检查CSV文件的分隔符。虽然逗号是最常见的,但有时也会遇到制表符(\t)或分号(;)分隔的文件。
  2. 使用na_values参数指定哪些值应被视为缺失值。
  3. 如果CSV文件没有标题行,使用header=None参数,并可以用names参数指定列名。
  4. 对于大文件,考虑只读取需要的列来提高效率。

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())

注意事项:

  1. 确保已安装openpyxl库,特别是处理较新的.xlsx文件时。可以通过pip install openpyxl安装。
  2. Excel文件可能包含多个工作表。使用sheet_name参数指定要读取的工作表。
  3. 要读取特定范围的单元格,可以结合使用usecolsskiprowsnrows参数。
  • usecols指定列范围(如”B:D”表示B到D列)
  • skiprows指定要跳过的行数
  • nrows指定要读取的行数
  1. 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())

注意事项:

  1. 对于单列数据,可以使用pandas的read_csv()函数,即使文件扩展名是.txt。
  2. 如果文件没有标题,使用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()

注意事项:

  1. NPZ文件可以包含多个命名数组。使用files属性查看所有数组的名称。
  2. 记得在使用完NPZ文件后关闭它。
  3. NPZ文件非常适合存储和加载大型数值数据集,因为它们是压缩的,可以节省空间。
  4. 注意内存使用:当你访问NPZ文件中的数组时,整个数组会被加载到内存中。