Возможно, у вас есть пробелы перед именами некоторых столбцов, используя @ rahlf23 setup с некоторыми изменениями:
df = pd.DataFrame([['2017-01-02', ' 0.854046', np.nan, '0.681606', '0.883779', '0.680304'],
['2017-01-01', '0.573784', '0.407917', '0.446668', '0.463504', '0.136830'],
['2017-01-03', '0.556100', '0.849009', '0.389748', np.nan, '0.777201']],
columns=['Date', ' Beta', ' Gamma', ' Delta', 'Alpha', ' Epsilon']).set_index('Date')
df.sort_index(axis=1)
Выход:
Beta Delta Epsilon Gamma Alpha
Date
2017-01-02 0.854046 0.681606 0.680304 NaN 0.883779
2017-01-01 0.573784 0.446668 0.136830 0.407917 0.463504
2017-01-03 0.556100 0.389748 0.777201 0.849009 NaN
Чтобы определить это, вы можете использовать df.to_dict()
:
{' Beta': {'2017-01-01': '0.573784',
'2017-01-02': ' 0.854046',
'2017-01-03': '0.556100'},
' Delta': {'2017-01-01': '0.446668',
'2017-01-02': '0.681606',
'2017-01-03': '0.389748'},
' Epsilon': {'2017-01-01': '0.136830',
'2017-01-02': '0.680304',
'2017-01-03': '0.777201'},
' Gamma': {'2017-01-01': '0.407917',
'2017-01-02': nan,
'2017-01-03': '0.849009'},
'Alpha': {'2017-01-01': '0.463504',
'2017-01-02': '0.883779',
'2017-01-03': nan}}
И чтобы исправить, вы можете использовать .str.strip ()
df.columns = df.columns.str.strip()
df.sort_index(axis=1)
Выход:
Alpha Beta Delta Epsilon Gamma
Date
2017-01-02 0.883779 0.854046 0.681606 0.680304 NaN
2017-01-01 0.463504 0.573784 0.446668 0.136830 0.407917
2017-01-03 NaN 0.556100 0.389748 0.777201 0.849009