У меня есть несколько DF Pandas с различным форматом, которые должны быть преобразованы в общий целевой формат.
Сейчас я пишу словари для каждого DF:
import pandas as pd
import numpy as np
df1 = pd.DataFrame({"original_name":["a","b","c"],"original_value":[1,2,3]})
key_dict = {
"name":df1.original_name,
"value":df1.original_value,
"other_value":np.nan
}
target_colnames = ["name","value","other_value"]
new_df = pd.DataFrame(key_dict, columns = target_colnames)
Моя проблема: сопоставление оригинальных и целевых столбцов с key_dict
сохраняется в файле CSV (индекс = значения, столбцы = ключ для каждого DF).
key_df= pd.read_csv("key_df.csv").set_index("key")
key_df= key_df.to_dict()
new_df = pd.DataFrame(key_df["df1"], columns = target_colnames)
Это приводит к следующей ошибке:
"If using all scalar values, you must pass an index"
Я думаю, это потому, что значения key_df являются строками в отличие от key_dict. Нужно ли применять 'Eval' на клавиши?
Вот как выглядит key_df ["df1"] ":
{'name': 'df1.original_name',
'other_value': 'np.nan',
'value': 'df1.original_value'}