如何在函数中运行CSV列表?

2024-06-08 05:44:48 发布

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

我不知道该怎么问这个问题,所以请原谅我的无知。你知道吗

我正在从许多文件运行一个函数。导入df后,我将结果放入csv文件。你知道吗

df=pd.read_csv("C:\Users\filename.csv ") 
years = 5
days = 365

out_put, productivity= timeresult.input_data.outbuild(df, year, days)

productivity.to_csv("Jan.csv")

然而,对于我正在使用的许多CSV来说,这样做看起来很痛苦。所以我设法把所有的csv文件名放到一个大文件夹里。并将csv文件名导入到列表中。你知道吗

  filelist=["C:\Users\jan.csv", "C:\Users\feb.csv", "C:\Users\mar.csv"]

有没有办法让python循环函数中的所有列表,代替df,然后将每个文件发送到csv。你知道吗

我试过但失败了

   filelist = []
   for x in filelist:
     out_put, productivity= timeresult.input_data.outbuild(x, year, days)
     filelist.append(productivity)

我的目标是让它运行列表中的每个cvs文件名,然后为每个文件创建csv。你知道吗


Tags: 文件csv函数df列表inputdataput
3条回答

你离得太近了,你用的是位置而不是文件。使用此代码:

filelist=["C:\Users\jan.csv", "C:\Users\feb.csv", "C:\Users\mar.csv"]
for location in filelist:
    df = pd.read_csv(location)
    out_put, productivity= timeresult.input_data.outbuild(df, year, days)
    filelist.append(productivity)

要获得单个组合数据帧:

用所有files

from pathlib import Path
import pandas as pd

p = Path(r'"C:\Users\name\Documents')  # set your path, don't end the path with "\"
files = p.glob('*.csv')  # find your files

df = pd.concat([pd.read_csv(file) for file in files])

应用于函数:

  • 这取决于timeresult.input_data.outbuild是否接受数据帧。你知道吗
out_put, productivity = timeresult.input_data.outbuild(df, year, days)

只是通过函数运行文件:

  • 从上面使用files
  • 目前还不清楚timeresult是采用文件还是数据帧
for file in files:
    out_put, productivity = timeresult.input_data.outbuild(file, year, days)
    productivity.to_csv(file.name)
  • 如果函数不能处理pathlib对象,请在函数调用中将file替换为str(file)

如果我正确理解您的问题,此代码适用于您:

years = 5
days = 365
filelist = ["C:\Users\jan.csv", "C:\Users\feb.csv", "C:\Users\mar.csv"]
for filepath in filelist:
    df = pd.read_csv(filepath)
    out_put, productivity= timeresult.input_data.outbuild(df, year, days)

    df.index.name = filepath.split('\\')[-1].split('.')[0]
    productivity.to_csv(filepath)

获得的数据帧示例如下:
jan.csv

     costPrice currencyCode endDateValid
jan                                     
0        83.56          GBP   2011-05-01
1        99.56          EUR   2017-05-01

feb.csv

     costPrice currencyCode endDateValid
feb                                     
0        93.89          EUR   2014-02-01
1        59.56          EUR   2012-07-01

提示:如果要获取“C:\Users\”文件夹中所有.csv文件的名称列表:

import glob
filelist = glob.glob("C:\Users\*.csv") 

相关问题 更多 >

    热门问题