Вы также можете сделать это с помощью pandas rename_categories
. Сначала вам нужно определить столбец как dtype="category"
, например
In [66]: s = pd.Series(["a","b","c","a"], dtype="category")
In [67]: s
Out[67]:
0 a
1 b
2 c
3 a
dtype: category
Categories (3, object): [a, b, c]
, а затем переименовать их:
In [70]: s.cat.rename_categories([1,2,3])
Out[70]:
0 1
1 2
2 3
3 1
dtype: category
Categories (3, int64): [1, 2, 3]
Вы также можете передать объект, похожий на диктофон, для сопоставления переименование, например:
In [72]: s.cat.rename_categories({1: 'x', 2: 'y', 3: 'z'})
Это должно сделать это:
import pandas as pd
d = {'patient1': [1,2,3,4,5], 'patient2': [3,5,7,8,11], 'patient3': [5,9,13,17,21]}
df = pd.DataFrame(data=d)
min_df = df.apply(min,axis=0)
max_df = df.apply(max,axis=0)
sub_df = max_df - min_df
div_df = sub_df/0.5
out_df = pd.concat([min_df, max_df,sub_df,div_df], axis=1)
out_df.index.name = 'Patient'
out_df.columns = ['min','max','div','sub']
out_df.to_csv("out_all.csv")
out_df.T.to_csv("out_all_patients_as_columns.csv")
Надеюсь, вы получите эту идею, адаптируйте ее соответствующим образом.