在Pandas中的多个数据帧上应用相同的操作

2024-06-17 15:29:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在处理熊猫中大约30个外观相同的csv文件(一分钟的timeseries数据,一年一次,~100MB)。通常,我对30个数据帧中的每一个都执行相同的操作。是否有一种方便的方法可以同时对每个数据帧应用一个操作,但要单独保存文件?像这样的

for df in df1,df2,df3:
    df=df.dropna(subset=['A','B'])
    df['C'] = df['A']/df['B'] 
    df_a = df[(df.C >= 50)]

Tags: 文件csv数据方法indffor外观
1条回答
网友
1楼 · 发布于 2024-06-17 15:29:00
  • 这些文件可以根据需要进行操作或过滤,然后存储在字典中以供查看
  • 每个新数据帧都是字典中的一个值
  • 使用pathlib查找所有文件
  • 使用方法将文件名和路径视为对象
    • .stem获取文件名,该文件名可用作存储的数据帧的key的一部分
from pathlib import Path
import pandas as pd

p = Path('csv_files/Data/')  # path to files
files = list(p.glob('*.csv'))  # list of files

df_dict = dict()
for file in files:
    df = pd.read_csv(file)  # create dataframe from file
    df.dropna(subset=['A', 'B'], inplace=True)
    df['C'] = df['A'] / df['B']
    key = f'filtered_{file.stem}'
    df_dict[key] = df[(df.C >= 50)]  # create a new dataframe and store it in a dictionary
    
    
# get list of keys
print(df_dict.keys())

# access a dataframe
df_dict['filtered_file_name']

# save dataframes
for k, v in df_dict.items():
    v.to_csv(f'{k}.csv')

f串

路径库

相关问题 更多 >