#python #pandas
#python #pandas
Вопрос:
У меня есть следующий код для получения цен из таблицы, которая сформирована календарным способом:
from datetime import date
month_in_number = {"JAN": 1, "FEV": 2, "MAR": 3, "ABR": 4, "MAIO": 5, "JUN": 6, "JUL": 7, "AGO": 8, "SET": 9,
"OUT": 10, "NOV": 11, "DEZ": 12}
tabela_ibov = pd.read_excel("IBOVDIA.xlsx", None, header=1)
for year in tabela_ibov:
tabela_anual = tabela_ibov[year]
tabela_anual.rename(columns={"PREGÃO": "Dia"}, inplace=True)
calendar = tabela_anual.loc[tabela_anual.index <= 30]
for month in calendar:
if month != "Dia":
final = calendar.loc[:, [month, "Dia"]]
final = final.dropna()
final["Dia"] = final["Dia"].astype(int)
data = date(int(year), month_in_number[month], final["Dia"])
print(final)
Однако я не могу получить значение даты. Он отображает эту ошибку:
raise TypeError(f"cannot convert the series to {converter}")
TypeError: cannot convert the series to <class 'int'>
Что я хочу сделать, так это получить текущий год, месяц и день и добавить в таблицу в качестве другого столбца. Мне удалось правильно указать текущий год и месяц, но текущий день я не смог.
Ответ №1:
Удалось сделать это с:
for dia in em_colunas.loc[:, "Dia"]:
em_colunas.loc[dia - 1, "Data"] = dt.date(int(ano), mes_em_numero[mes], dia)