[英]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.