python散装笔记—130 使用Pandas读取、子集化和写入外部数据文件
本节展示了使用Pandas读取、子集化和写入外部数据文件的基本代码。
1: 使用Pandas导入、子集化和写入外部数据文件的基本代码
# 打印当前工作目录
import os
print(os.getcwd())
# 输出示例:/Users/sean/Documents
# 设置工作目录
os.chdir('/tmp')
print(os.getcwd())
# 输出示例:/private/tmp
# 加载Pandas库
import pandas as pd
# 读取一个名为'small_dataset.csv'的CSV数据文件,该文件包含4行和3列变量
my_data = pd.read_csv("small_dataset.csv")
print(my_data)
# 输出示例:
# x y z
# 0 1 2 3
# 1 4 5 6
# 2 7 8 9
# 3 10 11 12
# 查看数据集的行数和列数
print(my_data.shape)
# 输出示例:(4, 3)
# 查看数据集的行数
print(my_data.shape[0])
# 输出示例:4
# 查看数据集的列数
print(my_data.shape[1])
# 输出示例:3
# Python使用基于0的索引。数据集中的第一行或第一列位于位置0。
# 在R中,数据集的第一行或第一列位于位置1。
# 选择前两行
print(my_data[0:2])
# 输出示例:
# x y z
# 0 1 2 3
# 1 4 5 6
# 选择第二行和第三行
print(my_data[1:3])
# 输出示例:
# x y z
# 1 4 5 6
# 2 7 8 9
# 选择第三行
print(my_data[2:3])
# 输出示例:
# x y z
# 2 7 8 9
# 选择第一列的前两个元素
print(my_data.iloc[0:2, 0:1])
# 输出示例:
# x
# 0 1
# 1 4
# 选择变量y和z的第一个元素
print(my_data.loc[0, ['y', 'z']])
# 输出示例:
# y 2
# z 3
# Name: 0, dtype: int64
# 选择变量y和z的前三个元素
print(my_data.loc[0:2, ['y', 'z']])
# 输出示例:
# y z
# 0 2 3
# 1 5 6
# 2 8 9
# 将变量y和z的前三个元素写入外部文件。
# 这里的`index=0`表示不写入行名。
my_data2 = my_data.loc[0:2, ['y', 'z']]
my_data2.to_csv('my.output.csv', index=0)
代码说明
工作目录操作:
- 使用os.getcwd()获取当前工作目录。
- 使用os.chdir()设置新的工作目录。
读取CSV文件:
- 使用pandas.read_csv()读取CSV文件,返回一个DataFrame对象。
数据集的基本操作:
- 使用shape属性获取数据集的行数和列数。
- 使用切片操作(如my_data[0:2])选择特定行。
- 使用iloc和loc方法进行更复杂的索引操作:
- iloc基于整数位置进行索引。
- loc基于标签进行索引。
写入CSV文件:
- 使用DataFrame.to_csv()方法将数据写入CSV文件。
- 参数index=0表示在写入时不包含行索引。
注意事项
- 在读取和写入文件时,确保文件路径正确,并且文件存在(读取时)或可写(写入时)。
- 如果文件路径中包含特殊字符(如空格),建议使用原始字符串(如r'C:\path\to\file')。
- 在写入文件时,可以根据需要调整to_csv()方法的参数,例如指定分隔符(sep=',')、是否写入列名(header=True)等。