如何保留标题名称的顺序。订单不是按字母顺序排列的,而是自定义订单。它在数据框架中很好,但是当我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()
它最终会显示出来的收入来自'首先而不是“年”。有没有办法保留标题列名称?
答案 0 :(得分:1)
除非您使用的是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
的键是列。