我有一個使用用戶定義函式創建的資料框串列 -
a = list(map(test, cat_feature_names))
在哪里
cat_feature_names = ['Brand', 'Variety', 'Style', 'Country', 'Stars', 'Top Ten']
功能是這樣的
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”中可能有大量資料框。
請幫忙。
uj5u.com熱心網友回復:
IIUC,您在多個資料框中分隔 df,將列名作為映射函式的引數test。
一種解決方案可能是將資料幀存盤在字典中,使用列名作為鍵:
df_dict = dict(zip(cat_feature_names, map(test, cat_feature_names)))
然后,您可以使用df_dict[col_name].
uj5u.com熱心網友回復:
以下 for 回圈會將您的串列分解為多個資料框。globals() 將用于將其命名為 df_0、df_1 等。
for i in range(len(your_list)):
globals()[f"df_{i}"] = your_list[i]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/370818.html
