Python 用作数据分析的 常用功能代码块

73 阅读6分钟

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)
  1. import pandas as pd: 导入pandas库,并给它一个别名pdpandas是一个强大的Python数据分析工具库,它提供了大量用于数据处理和分析的函数和方法。
  2. def read_excel(file_path):: 定义一个名为read_excel的函数,它接受一个参数file_path,这个参数代表Excel文件的路径。
  3. df = pd.read_excel(file_path): 在read_excel函数内部,使用pandasread_excel方法读取Excel文件,并将读取到的数据存储在一个名为df的DataFrame对象中。DataFrame是pandas中用于存储表格数据的一种结构。
  4. return df: 返回df对象,即读取到的Excel数据。
  5. def write_to_excel(data, file_path):: 定义一个名为write_to_excel的函数,它接受两个参数:datafile_pathdata是需要写入Excel的数据,file_path是Excel文件的存储路径。
  6. df = pd.DataFrame(data): 在write_to_excel函数内部,将传入的data转换为DataFrame对象,并存储在名为df的变量中。
  7. df.to_excel(file_path, index=False): 使用pandasto_excel方法将df对象写入到Excel文件中。index=False参数表示不将DataFrame的行索引写入Excel文件中

2、数据分析和可视化

数据分析的步骤

  1. 导入所需的库。
  2. 读取数据,这通常是从CSV文件、Excel文件或其他数据源。
  3. 清洗和准备数据,以确保它适合分析。
  4. 进行数据分析,这可能包括统计计算、数据聚合、时间序列分析等。
  5. 使用matplotlib或其他可视化工具进行数据可视化。
  6. 显示或保存生成的图表。
# 使用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)
  1. import pandas as pd: 导入pandas库,并给它一个别名pdpandas是一个强大的Python数据分析工具库,它提供了大量用于数据处理和分析的函数和方法。
  2. def merge_spreadsheets(file_paths, output_file_path):: 定义一个名为merge_spreadsheets的函数,它接受两个参数:file_pathsoutput_file_pathfile_paths是一个包含要合并的Excel文件路径的列表,output_file_path是合并后的Excel文件的存储路径。
  3. all_data = []: 初始化一个空列表all_data,用于存储从每个Excel文件中读取到的DataFrame对象。
  4. for file_path in file_paths:: 使用一个for循环遍历file_paths列表中的每个文件路径。
  5. df = pd.read_excel(file_path): 使用pandasread_excel方法读取当前文件路径对应的Excel文件,并将读取到的数据存储在一个名为df的DataFrame对象中。
  6. all_data.append(df): 将读取到的DataFrame对象df添加到all_data列表中。
  7. merged_data = pd.concat(all_data, ignore_index=True): 使用pandasconcat方法将all_data列表中的所有DataFrame对象合并成一个大的DataFrame对象merged_dataignore_index=True参数表示合并后的DataFrame对象的行索引将被重置。
  8. merged_data.to_excel(output_file_path, index=False): 使用pandasto_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中的异常处理机制。下面是每一行的解释:

  1. try::开始一个try块。在这个块中,你放置可能会引发异常的代码。
  2. x = 1 / 0:这是一个会导致错误的代码行,因为不能除以零。这会引发一个ZeroDivisionError异常。
  3. Python 中有多种内置的异常类型,它们分别代表不同类型的错误情况。ZeroDivisionError只是其中之一,表示除数为零的错误。下面是一些常见的Python内置异常,不用背,了解一下就行:
  • OverflowError: 数值运算超出范围时抛出。
  • RuntimeError: 一般的运行时错误。
  • ZeroDivisionError: 除数为零时抛出。
  • AttributeError: 尝试访问对象没有的属性时抛出。
  • EOFError: 当input()函数在没有读取任何数据的情况下遇到文件结束条件(EOF)时抛出。
  • FloatingPointError: 浮点运算失败时抛出。
  • ImportError: 导入模块失败时抛出。
  • -IndexError: 索引超出序列范围时抛出。
  • KeyboardInterrupt: 当用户中断程序执行(通常是输入Ctrl+C)时抛出。
  • MemoryError: 内存溢出时抛出。
  • NameError: 尝试访问一个不存在的变量时抛出。
  • OSError: 操作系统级别的错误,例如文件不存在、权限问题等。 这些异常都是内置的,即它们是Python标准库的一部分,不需要额外导入就可以直接使用。在编写程序时,你可以根据需要捕获和处理这些异常,以确保程序的健壮性和稳定性。
  1. except ZeroDivisionError::开始一个except块。如果try块中的代码引发了ZeroDivisionError异常,那么这个块中的代码将会被执行。
  2. print("不能被0除!"):当捕获到ZeroDivisionError异常时,打印出错误信息。
  3. finally::开始一个finally块。无论是否捕获到异常,这个块中的代码总是会执行。
  4. print("This will always execute."):打印出一条信息,表明finally块已经执行。

当运行这段代码时,由于尝试除以零,会引发ZeroDivisionError异常。程序会跳到except块,打印出“不能被0除!”信息。然后,无论是否捕获到异常,finally块都会执行,打印出“This will always execute.”信息。