Pandas dataframe, как удалить и переименовать столбец

Для кадра данных, как показано ниже, я пытаюсь 1) удалить столбец B, так как он не находится в значениях строк Marker, 2) затем переименовать столбцы A, C, D в новые имена ColA, ColB, ColC в соответствии со значениями в столбце New_Name. Что может быть способом сделать это? Нужно ли мне помещать столбец New_Name в список и перебирать имена столбцов Dataframe, как? Большое спасибо за вашу помощь.

          A     B     C      D        Marker   New_Name
         1.0   0.0   0.0    1.0        A          ColA
         1.0   0.0   0.0    0.0        C          ColC
         0.0   0.0   0.0    0.0        D          ColD

person user3735871    schedule 27.04.2020    source источник
comment
ты что-нибудь пробовал?   -  person emrhzc    schedule 27.04.2020


Ответы (3)


Переименуйте столбцы, используя сопоставление и df.rename():

df = pd.DataFrame({"A": [1, 2, 3], "B": [4, 5, 6]})
df.rename(columns={"A": "a", "B": "c"})

print(df):

   a    c
0  1  4
1  2  5
2  3  6
person Albin johnson    schedule 27.04.2020
comment
как сделать эту карту динамически в соответствии со значениями в строках? Как бы я не знал точную карту столбцов = {A: a, B: c} - person user3735871; 27.04.2020

Таким образом, можно сохранить имена маркеров как имена строк;

df2=df.drop(columns=['Marker','B']).set_index('New_Name').T.rename_axis('Marker',axis=1)
df2
person wwnde    schedule 27.04.2020

person    schedule
comment
Но как после этого изменились значения в столбцах «Маркеры»? - person user3735871; 27.04.2020
comment
@user3735871 user3735871 заметил изменение, то есть имя индекса - person BENY; 27.04.2020
comment
@user3735871 `s=df.set_index('Marker').reindex(columns=df.Marker).\ rename(columns=dict(zip(df.Marker,df.New_Name))).\ rename_axis(None, axis= 1) - person BENY; 27.04.2020