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