我目前正在处理一些作为具有10000行和20列的数据帧导入到Python的数据。这些列存储样品名称和化学元素。 daaaframe当前通过样本名称和时间来索引,如下所示: [1]:https://i.stack.imgur.com/7knqD.png。
从这个数据框中,我想为每个单独的样本创建一个单独的数组,其中大约有25个带有循环。我已经生成了样本名称的索引和数组,这产生了一个显示为
的数组 samplename = fuegodataframe.index.levels[0]
samplearray = samplename.to_numpy()
array(['AC4-EUH41','AC4-EUH79N','AC4-EUH79S','AC4-EUH80','AC4-EUH81', 'AC4-EUH81b','AC4-EUH82N','AC4-EUH82W','AC4-EUH84', 'AC4-EUH85N','AC4_EUH48','AC4_EUH48b','AC4_EUH54N', 'AC4_EUH54S','AC4_EUH60','AC4_EUH72','AC4_EUH73','AC4_EUH73W', 'AC4_EUH78','AC4_EUH79E','AC4_EUH79W','AC4_EUH88','AC4_EUH89', 'bhvo-1','bhvo-2','bir-1','bir-2','gor132-1','gor132-2', 'gor132-3','sc ol-1','sc ol-2'],dtype = object)
我还创建了一个包含每个变量名称键的字典。我现在想知道如何使用此字典为每个样本生成单独的变量,以捕获在其中找到样本的所有行。
我已经尝试过以下方法:
for ii in sampledictionary.keys():
if ii == sampledictionary[ii]:
sampledictionary[ii] = fuegodataframe.loc[sampledictionary[ii]]
但是失败了。我实际上将如何去做这样的事情?这可能吗?
答案 0 :(得分:1)
我想您是在问如何动态生成变量,而不是将输出分配给字典中的键。
在Python中,有一个全局函数globals()
,它将输出文档中定义的所有变量名。
您可以为该词典动态分配新变量
globals()[f'variablename_{ii}'] = fuegodataframe.loc[sampledictionary[ii]]
等
如果ii
是0
,则variablename_0
可以使用分配的值。
通常,这不是好习惯,但有时是必需的。