繁体   English   中英

您如何调用每个名称定义为列表的文件名?

[英]How do you call a file name defined as list by each name?

您如何调用每个名称定义为列表的文件名?

*首先,您默认导入 csv 文件的方法。

def f_read_csv(tgrt_csv):
    trgt_csv_temp = '%s.csv' % (tgrt_csv)
    tgrt_tbl = pd.read_csv("".join([get_csv_path,trgt_csv_temp]))
    return tgrt_tbl

*其次,使用 for csv 我尝试在列表中引入每个文件的名称。

for name in read_csv_list:
    f_read_csv('%s' %name)

如何获取列表名称中的每个 csv 文件?

我很难理解你的问题。 我想你在问如何 append '.csv' 到列表的元素。 那是对的吗?

如果是这样,那么您可以使用map() function 来实现它:

z = list(map(lambda ip:(ip+'.csv'),tgrt_csv)

然后您可以使用pd.read_csv()方法加载内容。

我已经更改了您的 function 以获取名称,因为我不确定它是否有效,拼图的某些部分丢失了:-)。 但我保持了一些特征,比如要求文件扩展名。 为了使用 os.listdir 我们导入 os 模块。

import os

我已将我的路径定义为 python 工作目录中的文件夹,并在其中存储了 3 个 csv 文件。

path = 'somedir/'

这是您的新 function:

def f_read_csv(tgrt_csv):

  tgrt_tbl = [] #to store file names

    for file in os.listdir(tgrt_csv): #access to the directory

      if file.endswith('.csv'): #checking files with .csv extension
        name_file = os.path.join(tgrt_csv, file)
        tgrt_tbl.append(name_file)

  return tgrt_tbl

然后调用 function f_read_csv 并传递路径:

names = f_read_csv("somedir/")  

output,如果您打印它:

['somedir/file 1.csv', 'somedir/file 2.csv', 'somedir/file 3.csv']

如果您希望它们作为字符串,您可以将它们从列表中删除:

for name in names:
    print(name)


somedir/file 1.csv
somedir/file 2.csv
somedir/file 3.csv

我经常使用list comprehension来生成数据框。

dfs = [f_read_csv(name) for name in read_csv_list]

并使用pd.concat连接它们

df = pd.concat(dfs)

等等,使用glob生成文件列表

files = glob.glob("/path/to/target/files/*.csv")

do you meaning read a list of filename by pandas, and transfrom then to dataframe, if all csv file has same format, you can use dask.dataframe

import dask.dataframe as dd

ddf = dd.read_csv(f"{get_csv_path}*.csv")
df = ddf.compute()

dask 与 pandas 不兼容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM