让我们开展Python读取和保存为Excel、CSV、TXT文件及对DataFrame文件的基本操作指南。本攻略将涵盖Python中处理文件的基础知识、如何使用pandas库读取和保存各种格式的文件, 以及如何对pandas DataFrame文件进行基本操作。
一、Python基本文件处理和打开文件
Python使用open()
函数打开文件,该函数接受两个参数,第一个是文件名,第二个是文件访问模式。文件名是相对路径或绝对路径,文件访问模式是指您打算使用文件的方式。
文件访问模式:
- r —— 读取模式,只能读取文件的内容,不能修改文件。
- w —— 写入模式,可以删除文件的内容,然后把它写入新的数据。
- a —— 追加模式,可以在文件末尾添加新的内容,保留原来的数据。
- x —— 独占模式,只能用于新文件的创建,如果文件已经存在,打开失败。
- b —— 二进制模式,用于非文本文件,例如图像和声音文件。
- t —— 文本模式(默认模式),用于文本文件。
示例1:打开一个文本文件(只读模式)
f = open('text.txt', 'r')
content = f.read()
print(content)
f.close()
示例2:将文本写入文件(覆盖)
f = open('text.txt', 'w')
f.write('这是要写入文件的文本')
f.close()
更多信息请参阅Python官方文档的说明:Python文件操作文档
二、使用Pandas读取和保存文件
Pandas是一种开源数据分析工具,常用于数据预处理和数据分析。Pandas提供了一个高效的数据结构,称为DataFrame。它类似于Excel表格,但可以处理更大的数据集。
2.1 读取Excel文件
首先,让我们看一下如何读取Excel文件。
使用pandas
库中的read_excel
函数来读取Excel文件。此函数需要文件名并将返回一个DataFrame对象。
import pandas as pd
df = pd.read_excel('example.xlsx')
print(df)
2.2 保存数据到Excel文件
现在我们来看看如何将数据保存到Excel文件中。
使用to_excel
方法将数据保存到Excel文件中。此方法将DataFrame对象保存到指定的文件名中。
import pandas as pd
data = {'name': ['Alice', 'Bob', 'Charlie'],
'age': [25, 30, 35],
'gender': ['F', 'M', 'M']}
df = pd.DataFrame(data)
df.to_excel('example.xlsx', index=False)
2.3 读取CSV和TXT文件
顾名思义,“CSV格式”表示从逗号分隔值中读取数据的格式,而“TXT格式”(即文本文件格式)表示只提供文本数据的格式。
我们可以使用read_csv
函数来读取CSV和TXT文件。
import pandas as pd
df_csv = pd.read_csv('example.csv')
df_txt = pd.read_csv('example.txt', delimiter='\t')
2.4 保存数据到CSV和TXT文件
您可以使用to_csv
方法将数据保存为CSV或TXT文件。
import pandas as pd
data = {'name': ['Alice', 'Bob', 'Charlie'],
'age': [25, 30, 35],
'gender': ['F', 'M', 'M']}
df = pd.DataFrame(data)
df.to_csv('example.csv', index=False)
df.to_csv('example.txt', index=False, sep='\t')
三、Pandas DataFrame基本操作
对于读取和保存文件,您已经掌握了pandas。现在,您可以了解如何对Pandas DataFrame进行基本操作。
3.1 DataFrame数据预览
在操作DataFrame之前,让我们首先预览数据集的内容。使用head()
方法可以查看前几行数据(默认前5行),tail()
方法可以访问后几行数据。
import pandas as pd
data = {'name': ['Alice', 'Bob', 'Charlie'],
'age': [25, 30, 35],
'gender': ['F', 'M', 'M']}
df = pd.DataFrame(data)
print(df.head())
print(df.tail())
3.2 DataFrame基本统计数据
describe()
方法可以为数据集创建简单的描述统计数据集,并计算每个特征的最小值、最大值等等。
import pandas as pd
data = {'name': ['Alice', 'Bob', 'Charlie'],
'age': [25, 30, 35],
'gender': ['F', 'M', 'M']}
df = pd.DataFrame(data)
print(df.describe())
3.3 DataFrame基本操作
3.3.1 筛选
Pandas DataFrame提供了多种选择数据的方法。例如我们可以使用iloc
根据行位置选择数据,使用loc
根据标签选择数据。
import pandas as pd
data = {'name': ['Alice', 'Bob', 'Charlie'],
'age': [25, 30, 35],
'gender': ['F', 'M', 'M']}
df = pd.DataFrame(data)
# iloc根据行位置和列位置选择数据
print(df.iloc[0, :]) # 第一行所有列
print(df.iloc[:, 0]) # 所有行的第一列
# loc根据标签选择数据
print(df.loc[0, 'name']) # 第一行的name
3.3.2 过滤
Pandas DataFrame提供了从数据集中选择行和列的方法。
我们可以使用query
函数过滤行,也可以使用特殊语法语句(与或非)过滤行。
import pandas as pd
data = {'name': ['Alice', 'Bob', 'Charlie'],
'age': [25, 30, 35],
'gender': ['F', 'M', 'M']}
df = pd.DataFrame(data)
# 过滤行
df2 = df.query('age > 28')
print(df2)
# 特殊语法过滤行
df3 = df[(df['age'] > 28) | (df['gender'] == 'M')]
print(df3)
# 过滤列
df4 = df[['name', 'age']]
print(df4)
3.4 转换数据
对于一个数据集,您可能需要对它进行转换才能使用它。
Pandas DataFrame提供了多种转换数据的方法。例如,我们可以通过使用apply
函数转换数据集。
import pandas as pd
data = {'name': ['Alice', 'Bob', 'Charlie'],
'age': [25, 30, 35],
'gender': ['F', 'M', 'M']}
df = pd.DataFrame(data)
def get_name_length(name):
return len(name)
df['name_length'] = df['name'].apply(get_name_length)
print(df)
这是一个提取'名字'列的字符串长度的示例。
四、示例
现在,我们通过一个实际的数据集对前面的内容进行实践,来检查读取、处理和保存文件的技巧。
任务说明:在本次任务中,我们将载入鸢尾花数据集,选择适当的特征和算法来训练模型,并将结果保存到一个CSV格式的文件中。
- 导入必要的库和模块。
import pandas as pd
from sklearn.datasets import load_iris
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import train_test_split
- 读取数据集并创建DataFrame。
iris = load_iris()
df = pd.DataFrame(
iris['data'],
columns=['sepal_length', 'sepal_width', 'petal_length', 'petal_width']
)
df['target'] = iris['target']
- 数据预处理。
我们可以根据任务需求选择适当的特征。
x = df.loc[:, ['petal_length', 'petal_width']]
y = df['target']
- 拆分数据集。
在拆分数据之前,您需要将数据集中的特征和标签分开。您可以使用train_test_split
方法来拆分数据集。
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=42)
- 训练和预测数据集。
使用KNN算法训练数据集并预测获得的结果。
knn = KNeighborsClassifier(n_neighbors=3)
knn.fit(x_train, y_train)
y_pred = knn.predict(x_test)
- 保存结果。
df_result = pd.DataFrame({'actual': y_test, 'predicted': y_pred})
df_result.to_csv('result.csv', index=False)
这是一个基于鸢尾花数据集的示例,您可以将此示例用于比较和学习。
以上是Python读取和保存为Excel、CSV、TXT文件及对DataFrame文件的基本操作指南的完整攻略。通过此攻略,您可以了解如何处理各种文件格式和Pandas DataFrame。感谢您的阅读!
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python读取和保存为excel、csv、txt文件及对DataFrame文件的基本操作指南 - Python技术站