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))