保留列名称顺序to_dict

时间:2018-06-14 15:59:23

标签: python pandas

如何保留标题名称的顺序。订单不是按字母顺序排列的,而是自定义订单。它在数据框架中很好,但是当我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()

它最终会显示出来的收入来自'首先而不是“年”。有没有办法保留标题列名称?

1 个答案:

答案 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的键是列。