Я хотел бы инициализировать словарь и всегда назначать пустую структуру данных каждому ключу, который затем будет использоваться позже.
Это результат и поведение, которое я хотел бы:
data = {
"record" : {
"fields_array" : [],
"df" : pd.DataFrame(),
"df_fields" : pd.DataFrame(columns = ["name", "units", "field_type", "base_type", "type"]),
"rows" : []
},
"device_info" : {
"fields_array" : [],
"df" : pd.DataFrame(),
"df_fields" : pd.DataFrame(columns = ["name", "units", "field_type", "base_type", "type"]),
"rows" : []
},
}
Таким образом, каждый ключ ссылается на уникальный DataFrame или массив.
Я хотел бы просто написать свой код следующим образом:
data_struct = {
"fields_array" : [],
"df" : pd.DataFrame(),
"df_fields" : pd.DataFrame(columns = ["name", "units", "field_type", "base_type", "type"]),
"rows" : []
}
data = {
"record" : data_struct,
"device_info" : data_struct,
}
Однако, если я сейчас использую data["record"]["df"]
или data["device_info"]["df"]
, они ссылаются на один и тот же DataFrame.
Почему такое поведение и как я могу решить эту проблему? Мне нужно добавить еще много ключей в словарь data
.