簡體   English   中英

將一個數據框列表分成多個數據框

[英]Separate a list of data frames into multiple data frames

我有一個使用用戶定義的 function 創建的數據框列表 -

a = list(map(test, cat_feature_names))

在哪里

cat_feature_names = ['Brand', 'Variety', 'Style', 'Country', 'Stars', 'Top Ten']

function 就是這個

def test(col):
    vc = df[col].value_counts().rename_axis('unique_values').reset_index(name='counts')
    vc['feature'] = col
    vc['frequency']=round((vc['counts']/(vc['counts'].sum())*100),2)
    vc = vc[['feature','unique_values','counts','frequency']]
    no_of_unique = len(vc)
    return vc  

現在,我需要將“a”的內容分成多個大小和形狀不同的數據框。 我需要動態地執行此操作。 我現在能做的就是一次提取一個數據幀,就像這樣

a[0]

for 循環將不起作用,因為列表“a”中可能有大量數據幀。

請幫忙。

IIUC,您在多個數據幀中分離 df,將列名作為參數提供給您的映射 function test

一種解決方案可能是將數據框存儲在字典中,使用列名作為鍵:

df_dict = dict(zip(cat_feature_names, map(test, cat_feature_names)))

然后,您可以使用df_dict[col_name]訪問每個 dataframe 。

以下 for 循環會將您的列表分成多個數據框。 globals() 將用於將其命名為 df_0、df_1 等。

for i in range(len(your_list)):
    globals()[f"df_{i}"] = your_list[i]

這是我發現有效的代碼:

for i in range(len(lst_distances)):
    globals()[f"df_{i}"] = lst_distances[i] # adds all distances to different lists based on their index 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM