目标:为了处理数据,基于python和pandas,遍历文件夹内所有xlsx文件。比如说查询每一个文件数据中所有的0值,并打印出每个文件中所包含的0值总数量。
python代码:
using System.Collections;
# 导入所需的模块
import pandas as pd
import os
# 定义要遍历的文件夹路径
folder_path = "C:/Users/此处改成你自己需要检查的文件夹路径/"
# 创建一个空的字典,用于存储文件名和0值的数量
zero_counts = {}
# 遍历文件夹中的所有文件
for file in os.listdir (folder_path):
# 判断文件是否是xlsx格式
if file.endswith (".xlsx"):
# 读取文件内容为一个DataFrame对象
df = pd.read_excel (os.path.join (folder_path, file))
# 计算DataFrame中0值的数量,使用(df == 0).sum ().sum ()方法
zero_count = (df == 0).sum ().sum ()
# 将文件名和0值的数量存入字典中
zero_counts [file] = zero_count
# 打印出字典中的结果
for file, zero_count in zero_counts.items ():
print (f"{file} 有 {zero_count} 个0值.")
目标2:如果你想要在实现上述功能的情况下做一个数据筛选,比如说0值的数量超过20000,那么就删掉这个文件。只保留特定数据数量没有那么多的数据文件:
python代码:
using System.Collections;
# 导入所需的模块
import pandas as pd
import os
# 定义要遍历的文件夹路径
folder_path = "C:/Users/此处改成你自己需要检查的文件夹路径/"
# 创建一个空的字典,用于存储文件名和0值的数量
zero_counts = {}
# 遍历文件夹中的所有文件
for file in os.listdir (folder_path):
# 判断文件是否是xlsx格式
if file.endswith (".xlsx"):
# 读取文件内容为一个DataFrame对象
df = pd.read_excel (os.path.join (folder_path, file))
# 计算DataFrame中0值的数量,使用(df == 0).sum ().sum ()方法
zero_count = (df == 0).sum ().sum ()
# 将文件名和0值的数量存入字典中
zero_counts [file] = zero_count
# 判断0值的数量是否超过20000
if zero_count > 20000:
# 删除该文件
os.remove (os.path.join (folder_path, file))
# 打印出删除的文件名
print (f"{file} 文件被移除了,因为它超过了20000个0值,本文件中具有{zero_count} 个0值.")
# 打印出字典中的结果
for file, zero_count in zero_counts.items ():
print (f"{file} 文件具有 {zero_count} 个0值.")