pandasデータフレームインデックスを並べ替え/並べ替える(必ずしも並べ替える必要はありません)にはどうすればよいですか?
私は次のデータフレームを持っています:
df = pd.DataFrame({'A': [1, 2, 3, 4, 5, 6, 7],
'B': [0, 1, 0, 2, 1, 7, 1]},
index=['Sat', 'Tue', 'Sun', 'Fri',
'Wed', 'Mon', 'Thu'])
これは:
A B
Sat 1 0
Tue 2 1
Sun 3 0
Fri 4 2
Wed 5 1
Mon 6 7
Thu 7 1
曜日(日、月、火、水、木、金、土)でインデックスを注文したい。インデックスが再配置/再並べ替えされたデータフレームは、次のようになります。
A B
Sun 3 0
Mon 6 7
Tue 2 1
Wed 5 1
Thu 7 1
Fri 4 2
ただし、df.sort_index()を使用すると、dfのインデックスがアルファベット順にソートされます。
データフレームインデックスの順序を明示的に指定するにはどうすればよいですか?
私が考えることができる解決策は、データフレームの作成中に目的のインデックスの順序をリストとして渡すことです。
df = pd.DataFrame(df, index=['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri'])
別のデータフレームを作成せずにこれを行う別の方法は何ですか?
ありがとうございました。
loc
インデックスのリストを使用して、必要な順序で指定できます。
df = pd.DataFrame({'A': [1, 2, 3, 4, 5, 6, 7],
'B': [0, 1, 0, 2, 1, 7, 1]},
index=['Sat', 'Tue', 'Sun', 'Fri',
'Wed', 'Mon', 'Thu'])
df = df.loc[['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], :]
df
# A B
# Sun 3 0
# Mon 6 7
# Tue 2 1
# Wed 5 1
# Thu 7 1
# Fri 4 2
# Sat 1 0
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加