例えば、0列目(一番左の列)へ挿入する場合の例は下記です。
df.insert(0, '列名', 挿入するデータリスト)
これを活用した雛形コードを残します。例えば、下表のようなcsvファイルがあったとします。
#Name |
x_min |
x_max |
y_min |
y_max |
A |
3 |
4 |
-1 |
-1 |
B |
3 |
4 |
1 |
1 |
C |
1 |
2 |
10 |
10 |
D |
1 |
2 |
-10 |
-10 |
本コードを実行すると、下表のように数値列のみをソート(並び替え)した結果をcsvファイルに保存します。
#Name |
x_min |
x_max |
y_min |
y_max |
A |
1 |
2 |
-10 |
-10 |
B |
1 |
2 |
10 |
10 |
C |
3 |
4 |
-1 |
-1 |
D |
3 |
4 |
1 |
1 |
一発でするのではなく、下図のように順を追って処理します。

■本プログラム
import os
import pandas as pd
def main():
df = pd.read_csv(file_path, skiprows=0, encoding='utf-8')
print(df)
my_list = df[label_column ].values.tolist()
print(my_list)
df_drop = df.drop(labels=label_column, axis=1)
print(df_drop)
df_f = df_drop.astype('float64')
print(df_f)
df_s = df_f.sort_values(by=sort_list, ascending=True)
print(df_s)
df_s.insert(0, label_column , my_list)
df_r = df_s.reset_index(drop=True)
print(df_r)
df_r.to_csv(output_path, sep=',', index=False, encoding='utf-8', header=True)
if __name__ == '__main__':
path = os.getcwd()
input_file = 'data.csv'
file_path = os.path.join(path, input_file)
label_column = r'#Name'
sort_list = ['x_min', 'x_max', 'y_min', 'y_max']
output_path = 'sorted_data.csv'
main()
print('finished')
以上
<広告>
リンク