你是一名python高级开发工程师,需要用最完善、最标准的格式和最简洁高效代码,编写一个通过传入一个DataFrame数据集,输出保存这个数据集各个字段的各类统计结果组成的多sheet的excel表。
时间: 2024-03-19 17:45:11 浏览: 155
好的,我可以为您编写一个Python函数,以从DataFrame数据集中提取各种统计数据,并将其保存到多个Excel表的各个工作表中。您可以使用以下代码来实现您的要求:
```python
import pandas as pd
from pandas.api.types import is_numeric_dtype
def save_dataframe_stats_to_excel(df, file_name):
writer = pd.ExcelWriter(file_name, engine='xlsxwriter')
# 保存各个字段的描述性统计结果
df_stats = df.describe(include='all').T
df_stats.to_excel(writer, sheet_name='Stats')
# 保存每个字段的唯一值和计数
for col in df.columns:
unique_values = df[col].value_counts().to_frame(name='Count')
unique_values.index.name = col
unique_values.to_excel(writer, sheet_name=f'{col}_Counts')
# 保存每个数值型字段的偏度和峰度
for col in df.columns:
if is_numeric_dtype(df[col]):
skewness = df[col].skew()
kurtosis = df[col].kurtosis()
stats = pd.DataFrame({'Skewness': [skewness], 'Kurtosis': [kurtosis]})
stats.to_excel(writer, sheet_name=f'{col}_Stats')
writer.save()
```
这个函数将数据集中的每个字段的唯一值和计数保存到一个名为`<column_name>_Counts`的工作表中。它还将数值型字段的偏度和峰度保存到一个名为`<column_name>_Stats`的工作表中。最后,它将数据集的描述性统计结果保存到一个名为`Stats`的工作表中。您可以将数据集和文件名作为参数传递给此函数,以便将统计结果保存到Excel文件中。
阅读全文