python读取和保存为excel、csv、txt文件及对DataFrame文件的基本操作指南

让我们开展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格式的文件中。

  1. 导入必要的库和模块。
import pandas as pd
from sklearn.datasets import load_iris
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import train_test_split
  1. 读取数据集并创建DataFrame。
iris = load_iris()
df = pd.DataFrame(
    iris['data'],
    columns=['sepal_length', 'sepal_width', 'petal_length', 'petal_width']
)
df['target'] = iris['target']
  1. 数据预处理。

我们可以根据任务需求选择适当的特征。

x = df.loc[:, ['petal_length', 'petal_width']]
y = df['target']
  1. 拆分数据集。

在拆分数据之前,您需要将数据集中的特征和标签分开。您可以使用train_test_split方法来拆分数据集。

x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=42)
  1. 训练和预测数据集。

使用KNN算法训练数据集并预测获得的结果。

knn = KNeighborsClassifier(n_neighbors=3)
knn.fit(x_train, y_train)
y_pred = knn.predict(x_test)
  1. 保存结果。
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技术站

(0)
上一篇 2023年5月13日
下一篇 2023年5月13日

相关文章

  • Python时间戳与日期格式之间相互转化的详细教程

    下面是关于Python时间戳与日期格式之间相互转化的详细教程。 1. Python中时间的表达方式 在Python中,通常有以下三种表达时间的方式: 时间戳 时间元组(struct_time) 格式化日期字符串 其中,时间戳是指自1970年1月1日00:00:00以来的秒数,是一个浮点数类型;时间元组是一个包含9个元素的元组,分别包含:年、月、日、小时、分钟…

    python 2023年6月2日
    00
  • Python的collections模块中namedtuple结构使用示例

    下面是关于Python的collections模块中namedtuple结构的详细讲解及使用示例。 什么是namedtuple? namedtuple 是 Python collections 模块提供的一种特殊数据类型。它是一个工厂函数,用于创建自定义的元组,可以给其中的每个元素命名。namedtuple 与元组类似,但具有更加清晰的结构。它允许我们像处理…

    python 2023年5月14日
    00
  • python实现删除文件与目录的方法

    下面是关于 Python 实现删除文件和目录的详细攻略。 删除文件 在 Python 中,我们可以使用 os 模块中的 remove() 方法来删除文件。 import os os.remove(‘temp.txt’) 当你运行上述代码时,Python 将会删除名为 temp.txt 的文件。如果文件不存在,会抛出 FileNotFoundError 异常。…

    python 2023年6月2日
    00
  • Python实现字典序列ChainMap

    Python的ChainMap类是一个非常有用的数据结构,可以让多个字典按照顺序合并成为一个字典,可以在这个新字典中进行键值查找和修改操作。简单来说,ChainMap会按照顺序查找多个字典,并返回最先找到的键值对。 具体步骤如下: 导入ChainMap类 from collections import ChainMap 创建多个字典 dict_1 = {‘a…

    python 2023年5月13日
    00
  • python 比较字典value的最大值的几种方法

    当我们需要比较Python字典value的最大值时,有以下几种方法: 1. 使用max()方法 可以使用Python内置的max()方法来比较字典的value的最大值。 max()方法接受一个可迭代的对象作为参数,并返回其中最大的那个值。 示例代码: # 定义一个字典 my_dict = {‘a’: 10, ‘b’: 5, ‘c’: 15, ‘d’: 20}…

    python 2023年5月13日
    00
  • python正则表达式匹配[]中间为任意字符的实例

    Python正则表达式匹配[]中间为任意字符的实例 在Python中,我们可以使用正则表达式进行字符串匹配和替换。在正则表达式中,[]表示字符集,可以匹配其中任意一个字符。本攻略将详细讲解如何使用Python正则表达式匹配[]中间为任意字符的实例,包括如何使用.和[]进行匹配、如何使用re模块进行匹配。 使用.进行匹配 在Python中,我们可以使用.进行匹…

    python 2023年5月14日
    00
  • 简单谈谈Python中的反转字符串问题

    针对Python中的反转字符串问题,以下是完整的攻略: 1. 反转字符串的意义 反转字符串意为将给定字符串中的字符顺序颠倒过来,比如将 “hello” 反转就是变成 “olleh”。反转字符串可以用于求解某些算法题,或用于字符串处理、翻转等实际应用中。 2. Python中反转字符串的方法 2.1 使用切片 Python中的字符串是一个序列(sequence…

    python 2023年6月3日
    00
  • Python实现爆破ZIP文件(支持纯数字,数字+字母,密码本)

    Python实现爆破ZIP文件攻略 什么是ZIP文件? ZIP文件是一种常见的文件压缩格式,它可以将多个文件压缩成一个文件,减小文件大小。通常情况下,我们需要输入密码才能解压缩ZIP文件。 ZIP文件爆破攻略 如果你忘记了ZIP文件的密码,或者需要破解某个受保护的ZIP文件,那么你可以使用Python来实现ZIP文件的爆破。 ZIP文件的密码通常是由数字和字…

    python 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部