如上excel表格,利用pandas读取数据:
import pandas as pd
# 读取excel
data = pd.read_excel('data.xlsx')
print(data.columns)
我们可以看到第3行和第5行数据0比较多,现在我们想删除这2行,如何实现呢?
首先,统计每行数据0的个数:
# 统计每行0的个数
sums = (data==0).astype(int).sum(axis=1)
然后,筛选出符合条件的行索引:
# 获取符合条件的行索引
sums_result = list(sums[sums>4].index)
最后,删除行索引的数据:
# 删除0超过n个的数据
data_final = data.drop(sums_result, axis=0)
删除后的数据:
写入excel:
# 写入excel
data_final.to_excel("data_final.xlsx",index=False)
所有源码如下:
python版本3.9.0
pandas版本1.4.2
# -*- coding: utf-8 -*-
"""
Created on Mon Apr 18 15:27:22 2022
@author: zqq
"""
import pandas as pd
# 读取excel
data = pd.read_excel('data.xlsx')
print(data.columns)
# 手动生成数据
# data = pd.DataFrame({'a':[1,5,0,3,0], 'b':[3,7,0,6,0], 'c':[5,0,0,7,1],
# 'd':[7,5,0,8,0], 'e':[9,2,7,1,0], 'f':[0,1,0,2,0]})
# 统计每行0的个数
sums = (data==0).astype(int).sum(axis=1)
# 获取符合条件的行索引
sums_result = list(sums[sums>4].index)
# 删除0超过n个的数据
data_final = data.drop(sums_result, axis=0)
# 写入excel
data_final.to_excel("data_final.xlsx",index=False)
参考资料:
https://www.cnblogs.com/hongbiao/p/16097801.html