Python dict中数据帧的大小
想象一下,我有一个dict,里面有8个数据帧,有不同的名称 每个数据框对应一个特定的年份。例如,在201520162017年,它有一个诊所的病人。每个数据框有不同的病人行数,但列数相同。例如,我的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
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]