1、读取和写入Excel
# Python读取和写入Excel电子表格中的数据
import pandas as pd
def read_excel(file_path):
df = pd.read_excel(file_path)
return df
def write_to_excel(data, file_path):
df = pd.DataFrame(data)
df.to_excel(file_path, index=False)
import pandas as pd: 导入pandas库,并给它一个别名pd。pandas是一个强大的Python数据分析工具库,它提供了大量用于数据处理和分析的函数和方法。def read_excel(file_path):: 定义一个名为read_excel的函数,它接受一个参数file_path,这个参数代表Excel文件的路径。df = pd.read_excel(file_path): 在read_excel函数内部,使用pandas的read_excel方法读取Excel文件,并将读取到的数据存储在一个名为df的DataFrame对象中。DataFrame是pandas中用于存储表格数据的一种结构。return df: 返回df对象,即读取到的Excel数据。def write_to_excel(data, file_path):: 定义一个名为write_to_excel的函数,它接受两个参数:data和file_path。data是需要写入Excel的数据,file_path是Excel文件的存储路径。df = pd.DataFrame(data): 在write_to_excel函数内部,将传入的data转换为DataFrame对象,并存储在名为df的变量中。df.to_excel(file_path, index=False): 使用pandas的to_excel方法将df对象写入到Excel文件中。index=False参数表示不将DataFrame的行索引写入Excel文件中
2、数据分析和可视化
数据分析的步骤
- 导入所需的库。
- 读取数据,这通常是从CSV文件、Excel文件或其他数据源。
- 清洗和准备数据,以确保它适合分析。
- 进行数据分析,这可能包括统计计算、数据聚合、时间序列分析等。
- 使用
matplotlib或其他可视化工具进行数据可视化。- 显示或保存生成的图表。
# 使用pandas和matplotlib进行数据分析和可视化的Python脚本
import pandas as pd
import matplotlib.pyplot as plt
plt.figure(figsize=(10, 5)) # 设置图表大小
plt.plot(x['date_column'], y['value_column'], marker='o') # 绘制折线图
plt.title('标题') # 设置图表标题
plt.xlabel('日期') # 设置x轴标签
plt.ylabel('值') # 设置y轴标签
plt.grid(True) # 显示网格
x['date_column']:这一列通常包含日期或时间戳,是折线图的水平轴(x轴)。y['value_column']:这一列包含你想要分析的数值数据,是折线图的垂直轴(y轴)。marker='o':这个参数指定了在折线图的每个数据点上使用的标记样式。在这里,'o'表示圆圈标记,这样每个数据点都会被一个圆圈标记出来,使得折线图上的点更加清晰可见。
hyq了解一下:Matplotlib 是众多 Python 可视化包的鼻祖,也是Python最常用的标准可视化库,其功能非常强大,同时也非常复杂,想要搞明白并非易事。但自从Python进入3.0时代以后,pandas的使用变得更加普及,它的身影经常见于市场分析、爬虫、金融分析以及科学计算中。
作为数据分析工具的集大成者,pandas中的可视化功能比plt更加简便和功能强大。实际上,如果是对图表细节有极高要求,那么建议大家使用matplotlib通过底层图表模块进行编码。当然,我们大部分人在工作中是不会有这样变态的要求的,所以一句import pandas as pd就足够应付全部的可视化工作了
hyq这个博客找时间学习一下:blog.csdn.net/qq_39521554…
3、合并多个表格
# Python脚本合并多个Excel电子表格
import pandas as pd
def merge_spreadsheets(file_paths, output_file_path):
all_data = []
for file_path in file_paths:
df = pd.read_excel(file_path)
all_data.append(df)
merged_data = pd.concat(all_data, ignore_index=True)
merged_data.to_excel(output_file_path, index=False)
import pandas as pd: 导入pandas库,并给它一个别名pd。pandas是一个强大的Python数据分析工具库,它提供了大量用于数据处理和分析的函数和方法。def merge_spreadsheets(file_paths, output_file_path):: 定义一个名为merge_spreadsheets的函数,它接受两个参数:file_paths和output_file_path。file_paths是一个包含要合并的Excel文件路径的列表,output_file_path是合并后的Excel文件的存储路径。all_data = []: 初始化一个空列表all_data,用于存储从每个Excel文件中读取到的DataFrame对象。for file_path in file_paths:: 使用一个for循环遍历file_paths列表中的每个文件路径。df = pd.read_excel(file_path): 使用pandas的read_excel方法读取当前文件路径对应的Excel文件,并将读取到的数据存储在一个名为df的DataFrame对象中。all_data.append(df): 将读取到的DataFrame对象df添加到all_data列表中。merged_data = pd.concat(all_data, ignore_index=True): 使用pandas的concat方法将all_data列表中的所有DataFrame对象合并成一个大的DataFrame对象merged_data。ignore_index=True参数表示合并后的DataFrame对象的行索引将被重置。merged_data.to_excel(output_file_path, index=False): 使用pandas的to_excel方法将合并后的DataFrame对象merged_data写入到Excel文件中。index=False参数表示不将DataFrame的行索引写入Excel文件中。
4、异常处理 (能看懂是干啥的就行)
try:
x = 1 / 0 # 可能会引发异常的代码
except ZeroDivisionError:
print("不能被0除!")
finally:
print("This will always execute.")
这段代码展示了Python中的异常处理机制。下面是每一行的解释:
try::开始一个try块。在这个块中,你放置可能会引发异常的代码。x = 1 / 0:这是一个会导致错误的代码行,因为不能除以零。这会引发一个ZeroDivisionError异常。- Python 中有多种内置的异常类型,它们分别代表不同类型的错误情况。
ZeroDivisionError只是其中之一,表示除数为零的错误。下面是一些常见的Python内置异常,不用背,了解一下就行:
OverflowError: 数值运算超出范围时抛出。RuntimeError: 一般的运行时错误。ZeroDivisionError: 除数为零时抛出。AttributeError: 尝试访问对象没有的属性时抛出。EOFError: 当input()函数在没有读取任何数据的情况下遇到文件结束条件(EOF)时抛出。FloatingPointError: 浮点运算失败时抛出。ImportError: 导入模块失败时抛出。- -
IndexError: 索引超出序列范围时抛出。KeyboardInterrupt: 当用户中断程序执行(通常是输入Ctrl+C)时抛出。MemoryError: 内存溢出时抛出。NameError: 尝试访问一个不存在的变量时抛出。OSError: 操作系统级别的错误,例如文件不存在、权限问题等。 这些异常都是内置的,即它们是Python标准库的一部分,不需要额外导入就可以直接使用。在编写程序时,你可以根据需要捕获和处理这些异常,以确保程序的健壮性和稳定性。
except ZeroDivisionError::开始一个except块。如果try块中的代码引发了ZeroDivisionError异常,那么这个块中的代码将会被执行。print("不能被0除!"):当捕获到ZeroDivisionError异常时,打印出错误信息。finally::开始一个finally块。无论是否捕获到异常,这个块中的代码总是会执行。print("This will always execute."):打印出一条信息,表明finally块已经执行。
当运行这段代码时,由于尝试除以零,会引发ZeroDivisionError异常。程序会跳到except块,打印出“不能被0除!”信息。然后,无论是否捕获到异常,finally块都会执行,打印出“This will always execute.”信息。