写一个python代码,要求从一个数据集提取出来多个子表,通过观察第18列的数值进行提取。提取规则是第18列的数据一旦大于5即开始提取,若子表内第18列数据出现递减情况则自动跳入下一个字表的提取中。若子表大于100行自动删除100行后的数据。若子表小于100行则自动删除该子表.
时间: 2023-03-14 14:18:14 浏览: 92
import pandas as pd
# 读取数据
data = pd.read_csv('data.csv')
# 定义初始值
start_row = 0
end_row = 0
i = 0
# 循环遍历每一行
while(i < len(data)):
# 如果第18列大于5,则开始提取
if data.iloc[i][17] > 5:
start_row = i
end_row = i
# 如果第18列出现递减情况,则跳入下一个子表
while(data.iloc[i][17] > data.iloc[i+1][17]):
i += 1
end_row = i
# 根据提取规则,提取子表
sub_table = data[start_row:end_row+1]
# 如果子表大于100行,则删除100行后的数据
if len(sub_table) > 100:
sub_table = sub_table.iloc[0:100,:]
# 如果子表小于100行,则删除该子表
elif len(sub_table) < 100:
sub_table = pd.DataFrame([])
# 保存子表
sub_table.to_csv(str(i)+'.csv',index=False)
i += 1
else:
i += 1
阅读全文