У меня есть следующий фрейм данных:
import pandas as pd
df = pd.DataFrame({'name':['apple', 'banana', 'apple', 'mandarin', 'kiwi', 'kiwi'], 'val':[1,5,3,4,5,3]})
Я хочу создать отдельные фреймы данных, передавая имя плода следующей функции:
def split_all_fruits(df, fruit):
return df[df['name'] == fruit]
Затем я могу создать фреймы данных, просто вызывая функцию:
apple_df = split_all_fruits(df, 'apple')
banana_df = split_all_fruits(df, 'banana')
#and other fruits
Но я бы хотел создать циклы данных для цикла for без вызова funtion каждый раз для каждого фрукта. Но возможно ли создать цикл for, который выдает 5 фреймов данных с именем фрейма данных из списка сразу для каждого фрукта? Примерно так:
#name of dfs
name_of_dfs = ['apple_df', 'banana_df', 'mandarin_df', 'kiwi_df']
#fruit names in df
fruit_name = ['apple', 'banana', 'mandarin', 'kiwi']
#loop to create dfs, but i dont know how to assign list of names in name_of_dfs to respective fruit df
for fruit in fruit_name:
df_final = split_all_fruits(df,fruit)
print(df_final)
#it prints all dfs together, but not seperate df with name from list
Спасибо!