[英]How to perform variable assignment using dataframe name as variable
我寫了一個 python function,它將數據框作為 arguments 之一。下面是 function 的簡化版本:
def cat_update(df_to_update, df_source, cat_lst, con_lst):
try:
for cat, con in itertools.product(cat_lst, con_lst):
df_to_update.at[cat, con] = df_source.at[cat, con]
下面是我如何稱呼這個 function:
cat_update(df_templete1, raw_source, cat_lst, con_lst)
現在,我需要在可以有多個源數據幀 ( raw_source
) 的地方擴展我的代碼
我如何在這里指定一個變量,而不是指定實際的數據框值,我可以根據要求更改它?
我嘗試按如下方式指定分配變量的值:
raw_source = 'df_source_1'
但在這種情況下,它是一個字符串而不是一個數據框,因此 function 無法按照預期對其進行評估。 簡而言之,我需要將它從str
更改為pandas.core.frame.DataFrame
更多信息:我在 for 循環中調用上面的 function:
for n in range(len(df_config)):
cat_lst = df_config.at[n,'category'].split(",")
con_lst = df_config.at[n,'country'].split(",")
raw_source = df_config.at[n,'Raw source']
energy_source = df_config.at[n,'Energy source']
因此,源數據幀是從保存在df_config
中的用戶輸入中自動獲取的。
創建一個這樣的字典: {"data_frame_name": data_frame}
,這樣你就可以通過它的名稱訪問每個 data_frame,並假設我們有一個data_src_1
數據,如下所示:
data_src_1 = [['Alex',10],['Bob',12],['Clarke',13]]
df_source_1 = pd.DataFrame(data_src_1)
raw_sources = {"df_source_1" : df_source_1} # You can have other dataframes here
將你想要df_source
的數據框名稱傳遞給cat_update
方法,然后像這樣編輯方法:
raw_sources = {"df_source_1" : df_source_1, ...}
def cat_update(df_to_update, df_source, cat_lst, con_lst):
try:
for cat, con in itertools.product(cat_lst, con_lst):
df_to_update.at[cat, con] = raw_sources[df_source].at[cat, con]
但是,您可以只將df_source_1
等數據框本身傳遞給該方法,但在上面的代碼片段中,您可以將所有數據框一起放在一個字典 ( raw_sources
) 中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.