我想用pythom做一个随机删除文件夹里所有csv格式中的数据,对每个csv文件在每个原始数据在的基础上删除10%,20%,直到90%,并把剩下的数据输出为csv格式,命名格式为文件名加删除的百分数
时间: 2023-06-20 13:08:24 浏览: 62
批量删除文件夹下包含内容的文件
你可以使用 Python 的 os 和 pandas 库来实现这个功能。以下是一个可能的代码示例:
```python
import os
import pandas as pd
import random
# 设置要处理的文件夹路径和删除百分比列表
folder_path = '/path/to/folder'
delete_percentages = [10, 20, 30, 40, 50, 60, 70, 80, 90]
# 遍历文件夹中的所有 csv 文件
for filename in os.listdir(folder_path):
if filename.endswith('.csv'):
file_path = os.path.join(folder_path, filename)
# 读取 csv 文件为 pandas DataFrame
df = pd.read_csv(file_path)
# 随机删除每个百分比对应的行数,并输出为新的 csv 文件
for percentage in delete_percentages:
rows_to_delete = int(len(df) * percentage / 100)
df_copy = df.copy()
df_copy.drop(random.sample(df.index.tolist(), rows_to_delete), inplace=True)
new_filename = f"{os.path.splitext(filename)[0]}_{percentage}.csv"
new_file_path = os.path.join(folder_path, new_filename)
df_copy.to_csv(new_file_path, index=False)
```
这个代码会遍历指定的文件夹中的所有 csv 文件,对于每个文件,它会读取为 pandas DataFrame,并在每个指定的删除百分比下进行随机删除,最终输出为新的 csv 文件,文件名为原文件名加删除的百分数。注意,这个代码不会影响原始的 csv 文件。
阅读全文