大家好,欢迎来到IT知识分享网。
Python小程序
1. 读取当前工作目录(当前文件夹)中的所有 .xls 或 .xlsx 文件。
2. 所有文件第五列的和以及非空或非NaN值的数量
3. 每个文件中单独统计第五列的和以及非空或非NaN值的数量
4. 汇总信息已保存到summary.txt文件中
import os
import pandas as pd
# 定义函数来读取Excel文件的第五列数据并返回其和以及非空或非NaN值的数量
def read_excel_column_sum_and_count(file_path):
try:
# 尝试读取Excel文件
df = pd.read_excel(file_path)
# 确保至少有五列数据
if len(df.columns) >= 5:
# 返回第五列的和以及非空或非NaN值的数量
column_sum = df.iloc[:, 4].sum()
count = df.iloc[:, 4].count() # 默认会忽略NaN值
return column_sum, count
else:
return None, None
except Exception as e:
# 捕获所有异常并返回None
print(f”读取文件 {file_path} 时发生错误: {e}”)
return None, None
# 定义函数来遍历目录并计算所有Excel文件的第五列数据的和以及非空或非NaN值的数量
def calculate_column_sums_and_counts(directory):
total_sum = 0
total_count = 0
file_stats = {} # 用于存储每个文件的统计信息
for filename in os.listdir(directory):
if filename.endswith((‘.xls’, ‘.xlsx’)):
file_path = os.path.join(directory, filename)
sum_value, count_value = read_excel_column_sum_and_count(file_path)
if sum_value is not None and count_value is not None:
total_sum += sum_value
total_count += count_value
file_stats[filename] = {‘sum’: sum_value, ‘count’: count_value}
return total_sum, total_count, file_stats
# 定义主函数
def main():
# 假设我们处理当前工作目录
current_directory = ‘.’
try:
# 计算所有Excel文件的第五列数据的和以及非空或非NaN值的数量
total_sum, total_count, file_stats = calculate_column_sums_and_counts(current_directory)
# 将结果写入汇总文件
with open(‘summary.txt’, ‘w’) as summary_file:
summary_file.write(f”所有Excel文件中第五列数据的总和为: {total_sum}\n”)
summary_file.write(f”参与求和的数据数量(非空或非NaN值): {total_count}\n”)
summary_file.write(“\n每个文件的统计信息如下:\n”)
for filename, stats in file_stats.items():
summary_file.write(f”{filename}: 和 = {stats[‘sum’]}, 数量 = {stats[‘count’]}\n”)
summary_file.write(f”\n此汇总基于 {current_directory} 目录下的所有 .xls 和 .xlsx 文件。\n”)
print(“处理完成,汇总信息已保存到summary.txt文件中。”)
except Exception as e:
print(f”处理过程中发生错误: {e}”)
# 调用主函数
if __name__ == “__main__”:
main()
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/88946.html