在字典中访问带头部的数据框

时间:2018-05-25 19:38:07

标签: python pandas dictionary

我正在通过

阅读一些XLS文件
import os
import pandas as pd

path = r'pathtofolder'
files = os.listdir(path=path)

dataframes = {}

for file in files:
    filepath = path + '\\' + file
    if filepath[-3:] == 'xls':
        print(file)
        dataframes[file] = pd.read_excel(filepath)

由于某些原因,我无法访问字典中的数据帧,因为.head()似乎不起作用:

for file, dataframe in dataframes.items():
    dataframe.head()

此代码似乎在Jupyter中没有做任何事情。但是当我输入()数据帧时,我得到一个pandas.core.frame.DataFrame,所以head应该正常工作,对吗?

1 个答案:

答案 0 :(得分:1)

以前没有使用过Python数据帧,但我不认为你的for循环会以这种方式给你任何输出。它只是一个运行循环,在计算最后一个磁头时结束。您可以使用print()查看输出。

for file, dataframe in mydict.items():
    print(dataframe.head())

或者创建一个可重复使用的dataframe.head()列表,如下所示。您可以随时在控制台中输入列表名称以便稍后查看。请原谅用于创建数据帧字典的代码。

import pandas as pd
from sklearn import datasets

iris = pd.DataFrame(datasets.load_iris().data)
digits = pd.DataFrame(datasets.load_digits().data)
diabetes = pd.DataFrame(datasets.load_diabetes().data)

dataframes={'a':iris,'b':digits,'c':diabetes} #create a dictionary of dataframes 

list_heads=[]   #create a list of dataframe head()
    for i in dataframes:    
        list_heads.append(dataframes[i].head())
    list_heads