[英]Creating multiples pandas dataframes as outputs of a function iteration over a list
我正在尝试使用 pytaxize itis.hierarchy_full
的pytaxize
itis.hierarchy_full 来从特定 ID 中检索有关生物物种的信息。
function 仅采用一个值/Id 并将所有分类信息保存在 pandas dataframe 中,我稍后可以编辑。
import pandas as pd
from pytaxize import itis
test1 = itis.hierarchy_full(180530, as_dataframe = True)
我有 800 个物种 ID,我想自动化该过程以获得 800 个不同的数据帧。
我以某种方式创建了一个包含一个小列表的测试(请注意,我是一名生物学家,所以代码非常基本并且可能效率低下:
species = [180530, 48739, 567823]
tx = {}
for e in species2:
tx[e] = pd.DataFrame(itis.hierarchy_full(e, as_dataframe = True))
现在,如果我输入tx
(我使用的是 Jupyter Notebook),我将获得一个 pandas 数据帧的字典(我认为它是一个嵌套字典)。 如果我输入tx[180530]
我会得到一个 dataframe 等于我可以用原始 function 创建的那个。
from pandas.testing import assert_frame_equal
assert_frame_equal(test_180530, sp_180530)
现在我可以写一些东西来将存储在字典中的每个结果保存为单独的 dataframe:
sp_180530 = tx[180530]
sp_48739 = tx[48739]
sp_567823 = tx[567823]
有一种方法可以自动化该过程并将每个 dataframe 保存到 sp_id? 或者更好的是,有一种方法可以在我创建 tx 的原始 function 中直接包含多个数据帧到 output?
不完全是你问的,但能够详细说明如何处理字典中的数据帧......要使用字典,循环遍历字典,然后一个一个地使用每个包含的 dataframe ......
for key in tx.keys():
df_temp = tx[key]
# < do all your stuff to df_temp .....>
# Save the dataframe as you want/need (I assume as csv for here)
df_temp.to_csv(f'sp_{key}.csv')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.