繁体   English   中英

如何为每个CSV文件创建单独的Pan​​das DataFrame并为其提供有意义的名称?

[英]How to create separate Pandas DataFrames for each CSV file and give them meaningful names?

我已经彻底搜索过,在这个问题上找不到我正在寻找的指导,所以我希望这个问题不是多余的。 我有几个代表光栅图像的.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

所以现在我有一个字典,其中键是我想要的每个数据帧的名称,值是read_csv(路径)的路径:

{'Aspect': 'C:\\Users\\Charlie\\Desktop\\Qvik\\textRasters\\Aspect.csv',
 'Curvature': 'C:\\Users\\Charlie\\Desktop\\Qvik\\textRasters\\Curvature.csv',
 'NormalZ': 'C:\\Users\\Charlie\\Desktop\\Qvik\\textRasters\\NormalZ.csv',
 'Slope': 'C:\\Users\\Charlie\\Desktop\\Qvik\\textRasters\\Slope.csv',
 'SnowDepth': 'C:\\Users\\Charlie\\Desktop\\Qvik\\textRasters\\SnowDepth.csv',
 'Vegetation': 'C:\\Users\\Charlie\\Desktop\\Qvik\\textRasters\\Vegetation.csv',
 'Z': 'C:\\Users\\Charlie\\Desktop\\Qvik\\textRasters\\Z.csv'}

我的直觉是尝试这种变化:

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

但是这给我留下了一个数据帧'k',它填充了循环读入的最后一个文件的数据。

我可能在这里遗漏了一些基本的东西,但我开始转动这个,所以我想我会问你们......任何想法都值得赞赏!

干杯。

您是否试图在字典中单独获取所有数据帧,每个键一个数据帧? 如果是这样,这将使您显示您显示的字典,而是从每个键中获取数据。

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

所以现在,你可以这样做:

dataDct['SnowDepth'][['cola','colb']].plot()

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

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

要么

df_dict={}
for k, v in dataDct.iteritems():
    df_dict[k] = read_csv(v)

暂无
暂无

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

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