如何为每个CSV文件创建单独的Pandas数据帧并给它们起有意义的名称?

2024-10-16 17:22:13 发布

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

我已经彻底搜索过了,但找不到关于这个问题的指导,所以我希望这个问题不是多余的。我有几个表示光栅图像的.csv文件。我想对它们进行一些统计分析,所以我试着为每个文件创建一个Pandas数据帧,这样我就可以对它们进行切分并绘制它们……但是我很难在文件列表中循环,为每个文件创建一个有意义的名称的DF。在

以下是我目前所掌握的情况:

import glob
import os
from pandas import *

#list of .csv files
#I'd like to turn each file into a dataframe
dataList = glob.glob(r'C:\Users\Charlie\Desktop\Qvik\textRasters\*.csv')

#name that I'd like to use for each data frame
nameList = []
for raster in dataList:
    path_list = raster.split(os.sep)
    name = path_list[6][:-4]
    nameList.append(name)

#zip these lists into a dict

dataDct = {}
for k, v in zip(nameList,dataList):
    dataDct[k] = dataDct.get(k,"") + v
dataDct

现在我有了一个dict,其中key是我想要的每个数据帧的名称,值是read_csv(path)的路径:

^{pr2}$

我的本能反应是尝试这种变化:

for k, v in dataDct.iteritems():
    k = read_csv(v)

但这只剩下一个数据帧“k”,其中填充了循环读取的最后一个文件中的数据。在

我可能遗漏了一些基本的东西,但我开始在这上面转了转,所以我想我会问你们所有人…任何想法都是感激的!在

干杯。在


Tags: 文件csv数据pathnameinimport名称
2条回答

不清楚你为什么要在这里覆盖你的对象我想你想要一个dfs的列表或dict:

df_list=[]
for k, v in dataDct.iteritems():
    df_list.append(read_csv(v))

或者

^{pr2}$

你是不是想把一帧的数据分开?如果是这样的话,这将留下您所显示的dict,但是将在每个键中包含来自的数据。在

dataDct = {}
for k, v in zip(nameList,dataList):
    dataDct[k] = read_csv(v)

现在,你可以这样做,例如:

^{pr2}$

相关问题 更多 >