Python dict中数据帧的大小

Python dict中数据帧的大小,python,dataframe,dictionary,Python,Dataframe,Dictionary,想象一下,我有一个dict,里面有8个数据帧,有不同的名称 每个数据框对应一个特定的年份。例如,在201520162017年,它有一个诊所的病人。每个数据框有不同的病人行数,但列数相同。例如,我的dict如下表所示 Years Type Size Value 2015 DataFrame (4,99) (here it has the column names) 2016 Dat

想象一下,我有一个dict,里面有8个数据帧,有不同的名称 每个数据框对应一个特定的年份。例如,在201520162017年,它有一个诊所的病人。每个数据框有不同的病人行数,但列数相同。例如,我的dict如下表所示

Years      Type           Size                  Value
2015       DataFrame      (4,99)           (here it has the column names)
2016       DataFrame      (125,99)
2017       DataFrame      (85,99)
2018       DataFrame      (250,99)
and so on
如何访问这些数据帧的大小?因为我不能使用例如df.size,因为数据帧有不同的名称

# I create a list to save the number of entries per data frame
years = [] 

#j is a number for which after that number I want to calculate how many elements each data frame has
for i in range(j,number_of_years):
   p1 = df.size
   years.append(pl)

但正如我所说,df.size不起作用

编辑:首先,我阅读了一个包含多张工作表的excel文件。我用

#k is a string variable with the name of the excel file
file = pd.read_excel(k, sheet_name=None)

#Then I create the data frame from the dict. Basically it is a big data frame that combines all the data from my dict
df = pd.concat(file[frame] for frame in file.keys()).reset_index(drop=True)
因此,每个数据帧都是不同的年份201520162017等,我想创建一个名为year的新列,用于写入该行的起始年份。因为每个数据帧都有不同数量的行,所以我想到了前面提到的过程。我的最终结果应该是这样的

Years
2015
2015
2015
...
2016
2016
...
etc

到目前为止,我已经将dict从8个数据帧转换为1个大数据帧,将所有患者合并在一起。例如,前200行对应于2015年的患者。下一个从2016年开始。从2017年开始的下一个100年等等。我想在大数据框架中添加一个专栏,在那里我写下患者出生的年份。从某种意义上讲,我不能手工完成,因为第250行是2015年,等等,因为如果我阅读另一个excel文件,那么患者的数量将不同

年份=[] df1=pd.数据帧[[1,2,3],[2,3,4]] df2=pd.数据帧[[1,2,3],[2,3,4],[3,4,5]] df3=pd.数据帧[[1,2,3],[2,3,4],[3,4,5],[4,5,6]] my_dict={'df1':df1,'df2':df2,'df3':df3} 对于我的字典中的df: 年份+=[my_dict[df].大小]
要访问最后5个数据帧大小,您只需填写年份[lenyears-5://p>谢谢大家的帮助!事实证明,正如meowulf所建议的那样,只需在年底更改为+=[lenfile[df].index]

你能更具体地说什么不起作用吗?您是否得到错误的输出或任何错误等…?嘿。我现在知道如何调用dict中的数据帧,这样我就可以问它的大小了。因为每个数据帧都有不同的名称,所以我无法手动执行。我想创建一个循环,通过我的dict循环得到每个数据帧中的行数,并将其插入列表中,稍后我将使用该列表。等等,我会更新这个问题,让你明白我所做的事情的目的,因为也许有一种更简单的方法,我不知道它仍然不清楚,还有一件事dataframe对象没有keys方法,但你正在使用how file.keys?我在这个网站上找到的命令,我想,或者在Youtube上的视频中找到的关于如何从dict创建一个数据帧。因为我尝试从\u dict文件中使用df=pd.dataframe.from,如果使用所有标量值,我会得到一个错误,您必须传递一个索引,但使用此方法,它会将我的dict转换为一个巨大的数据帧,其中包含dict每个数据帧中的所有数据。我编辑了更多信息,也许现在更容易理解。Hey@meowulf感谢您的发布。问题是我没有创建dict。我只是读取了一个excel文件,无法手动命名,因为我无法事先知道excel文件中的每个dict将包含多少数据帧have@Alex-未知的dict/df密钥名称无关紧要,因为您正在迭代密钥,因此是动态的,正如梅奥武夫在最后一行所说的,非常感谢!我得到了它。我刚把它改为years+=[lenfile[d].index]