2017-03-28 14 views
0

インデックスでDataFrameを並べ替えようとしています。このDataFrameは辞書の辞書から作成されました。 DataFrame.sort_valuesを使用しようとしています。ただし、ソートはDataFrameを印刷しようとすると全く違いはありません。DataFrameにディクショナリの辞書をインポートした後にインデックスでデータを注文する

次のコードは、私が達成しようとしているものを例示:

import pandas as pd 

# Metrics dictionary keys 
GOLD_CNT_KEY = 'Gold_Cnt' 
PRED_CNT_KEY = 'Pred_Cnt' 
NER_INTERSEC_CNT_KEY = 'NER_Intersec_Cnt' 
NER_PREC_KEY = 'NER_Precision' 
NER_REC_KEY = 'NER_Recall' 
NER_F1_KEY = 'NER_F1' 
NERC_INTERSEC_CNT_KEY = 'NERC_Intersec_Cnt' 
NERC_PREC_KEY = 'NERC_Precision' 
NERC_REC_KEY = 'NERC_Recall' 
NERC_F1_KEY = 'NERC_F1' 

tag_classes = ['X', 'Y', 'Z', 'V'] 

def get_empty_stats_dict(): 
    """Dictionary for the counts and metrics""" 
    return {GOLD_CNT_KEY: 0, 
      PRED_CNT_KEY: 0, 
      NER_INTERSEC_CNT_KEY: 0, 
      NER_PREC_KEY: 0, 
      NER_REC_KEY: 0, 
      NER_F1_KEY: 0, 
      NERC_INTERSEC_CNT_KEY: 0, 
      NERC_PREC_KEY: 0, 
      NERC_REC_KEY: 0, 
      NERC_F1_KEY: 0} 

stats = {} 
for tag_class in tag_classes: 
    stats.update({tag_class: get_empty_stats_dict()}) 
# I want to order by these indexes 
index_order = [GOLD_CNT_KEY, PRED_CNT_KEY, NER_INTERSEC_CNT_KEY, NERC_INTERSEC_CNT_KEY, 
       NER_PREC_KEY, NERC_PREC_KEY, NER_REC_KEY, NERC_REC_KEY, NER_F1_KEY, NERC_F1_KEY] 

_stats = pd.DataFrame(stats) 

# These two prints yield exactly the same output. Why doesn't sort_values make any difference? 
print(_stats) 
print(_stats.sort_values(index_order, axis=1)) 

答えて

1

試してみてください。_stats = _stats.reindex(index_order)

関連する問題