Pandas: create dataframe without auto ordering column names alphabetically

后端 未结 3 612
无人及你
无人及你 2020-12-09 11:32

I am creating an initial pandas dataframe to store results generated from other codes: e.g.

result = pd.DataFrame({\'date\': datelist, \'total\': [0]*len(dat         


        
相关标签:
3条回答
  • 2020-12-09 11:47

    Use pandas >= 0.23 in combination with Python >= 3.6.

    result = pd.DataFrame({'date': datelist, 'total': [0]*len(datelist), 'TT': [0]*len(datelist)})

    retains the dict's insertion order when creating a DataFrame (or Series) from a dict when using pandas v0.23.0 in combination with Python3.6.

    See https://pandas.pydata.org/pandas-docs/version/0.23.0/whatsnew.html#whatsnew-0230-api-breaking-dict-insertion-order.

    0 讨论(0)
  • 2020-12-09 11:48

    You can pass the (correctly ordered) list of column as parameter to the constructor or use an OrderedDict:

    # option 1:
    result = pd.DataFrame({'date': datelist, 'total': [0]*len(datelist), 
                       'TT': [0]*len(datelist)}, columns=['date', 'total', 'TT'])
    
    # option 2:
    od = collections.OrderedDict()
    od['date'] = datelist
    od['total'] = [0]*len(datelist)
    od['TT'] = [0]*len(datelist)
    result = pd.DataFrame(od)
    
    0 讨论(0)
  • 2020-12-09 11:50
    result = pd.DataFrame({'date': [23,24], 'total': 0,
                           'TT': 0},columns=['date','total','TT'])
    
    0 讨论(0)
提交回复
热议问题