Я разделил мои данные на четыре кадра данных (SE_df, SO_df и т. Д .; каждый соответствует определенному шаблону c в одном из столбцов исходных данных). Я хочу запустить один и тот же процесс на каждом из четырех.
Я пробовал что-то вроде этого (Примечание: фактический процесс длиннее, но начинается с value_counts
.)
lookup_table = {
'SE': [SE_df, 'SE_df_counts'],
'SO': [SO_df, 'SO_df_counts'],
'OC': [OC_df, 'OC_df_counts'],
'CW': [CW_df, 'CW_df_counts']
}
for site in ['SE', 'SO', 'OC', 'CW']:
dframe_in = lookup_table[site][0]
dframe_out = lookup_table[site][1]
dframe_out = dframe_in.apply(pd.value_counts)
# ...
Когда l oop заканчивается, я хочу четыре новых DataFrames: SE_df_counts, SO_df_counts, ... et c
Вместо этого у меня есть один новый DataFrame с именем dframe_out
.
Я изначально пытался использовать
lookup_table = {
'SE': [SE_df, SE_df_counts],
...
}
но python жаловался на то, что DataFrame с именем SE_df_counts
еще не существует.
Я пытался заставить его существовать (что делает код более хрупким, но это стоило того).
SE_df_counts = pd.DataFrame()
lookup_table = {
'SE': [df_SE_mic, SE_df_counts],
}
for site in ['SE']:
dframe_in = lookup_table[site][0]
dframe_out = lookup_table[site][1]
dframe_out = dframe_in.apply(pd.value_counts)
и я до сих пор получаю DataFrame с именем dframe_out (который действительно смутил меня).
Есть ли способ передать желаемое имя кадра данных как переменную (или значение словаря) ? Здесь я вижу много заманчивых рекомендаций, когда люди говорят «Используй словарь», но примеры всегда более сложны, чем то, что я пытаюсь сделать, и окончательные ответы часто обеспечивают альтернативные способы решения вопроса (например, этот вопрос был очень близок, но выбранный ответ не относился к моему варианту использования.)