Как сохранить порядок имени заголовка. Заказ не в алфавитном порядке, это индивидуальный заказ. Это нормально в кадре данных, но когда я делаю это, я не to_dict
что это не то, что я изначально имел.
Это метод, который у меня есть в классе.
#the list is much larger
income_statements = pd.DataFrame(columns=['Year', 'Operating_Revenue', 'COGS','Income_Tax', 'Total_Revenue')
for year in years:
url = 'financials/standardized?identifier='+symbol+'&statement=income_statement&type=QTR&fiscal_year='+str(year)+'&date='+date
fin_data = requests.get(self.get_intrino+url, auth=HTTPBasicAuth(intrino_uname, intrino_pw)).json()['data']
row = []
row.append(year)
for i in range(len(fin_data)):
row.append( fin_data[i]['value'] )
income_statements.loc[len(income_statements)] = row
Я тогда называю это.. это всего лишь пример, но я беру возврат моего метода income_statements.to_dict()
Он заканчивается тем, что сначала показывает "Income_Tax" вместо "Год". Есть ли способ сохранить имена столбцов заголовка?
Если вы не используете Python 3. 7+, словари считаются неупорядоченными. Обходной путь состоит в том, чтобы сортировать, а затем загружать в collections.OrderedDict
:
from collections import OrderedDict
df_dict = OrderedDict(sorted(df_dict.items(), key=lambda x: df.columns.get_loc(x[0])))
pd.DataFrame.columns.get_loc
возвращает целочисленное расположение столбца. Мы предполагаем, что ключи df_dict
являются столбцами.