我想用pythom做一个随机删除文件夹里所有csv格式中的数据,以10%为间隔依次删除直到100%的程序,并把剩下的数据输出为csv格式,命名格式为文件名加删除的百分数
时间: 2023-06-23 12:09:51 浏览: 83
定时删除文件,或者文件夹
可以尝试以下代码:
```python
import os
import random
import pandas as pd
dir_path = 'your_directory_path' # 文件夹路径
file_ext = '.csv' # 文件扩展名
delete_percentages = list(range(10, 101, 10)) # 删除百分比列表
for file_name in os.listdir(dir_path):
if file_name.endswith(file_ext):
file_path = os.path.join(dir_path, file_name)
data = pd.read_csv(file_path)
for delete_percentage in delete_percentages:
data_len = len(data)
delete_len = int(data_len * delete_percentage / 100)
delete_indices = random.sample(range(data_len), delete_len)
data = data.drop(delete_indices)
remaining_data_len = len(data)
remaining_percentage = 100 - delete_percentage
remaining_file_name = f"{file_name[:-len(file_ext)]}_{remaining_percentage}%.csv"
remaining_file_path = os.path.join(dir_path, remaining_file_name)
data.to_csv(remaining_file_path, index=False)
```
该代码首先读取指定文件夹中所有扩展名为 `.csv` 的文件,并循环遍历每个文件。对于每个文件,它会依次删除 10%、20%、……、100% 的数据,剩余的数据将被输出到新的 csv 文件中。输出文件的命名格式为原始文件名加上删除的百分数。
注意,该代码会直接修改原始数据的 DataFrame,因此请确保备份你的数据或者在副本上执行该代码。
阅读全文