Cambiar cabeceras подставляют sus corresponsales en otro archivo

Sé que hay una entrada para esta cuestión, pero haciendo lo que se ставит на карту меня ошибка ООН Сальты y никакой entiendo el motivo.

Tengo un archivo que tiene 260 columnas подставляет sus cabeceras (df1). Luego танго otro archivo que tiene esos nombres de cabeceras подставляют sus "traducciones" (df2). Necesito cambiar los nombres de las cabeceras del df2 por las traducciones del df2.

Os muestro las cabeceras de algunas de las columnas: introducir la descripción de la imagen aquí

Y esta imagen de abajo соответствует al documento que tengo. Исходный Veréis que en la columna izquierda aparecen los nombres de columna (los del DF1; es decir, los de la foto de arriba) y, en la columna derecha, están Лос nuevos nombres.

introducir la descripción de la imagen aquí

Mi objetivo es que en el DF1, las columnas pasen подросток los nombres de la columna "Nombre Columna Nuevo". Никакая sé СИ я explico.

Las columnas никакой están en el mismo orden. Por así decirlo, necesitaría ООН "buscarv" para reemplazar los nombres de cabeceras del DF1 por sus traducciones del DF2.

Este es el proceso que he seguido:

df=pd.read_csv("ruta/archivo.csv", keep_default_na=False, na_values=[""])

Luego sigo las indicaciones que he visto en la respuesta que dieron otro usuario подставляет el mismo problema:

df2=pd.read_excel("ruta.xlsx").set_index(0)

traduccion=df2[1].to_dict()

df=df.rename(traduccion, axis=1)

Problema?

Я Сальта este ошибка:

TypeError: unhashable type: 'dict'

Y, entiendo, el ошибка está aquí:

introducir la descripción de la imagen aquí

Он buscado por Интернет, pero никакой nada en claro Сако. ¿Qué hago mal?

Muchas gracias,

ООН saludo,

1
задан 19.12.2019, 13:02
1 ответ

Есть одна soluciГіn, в который я верю, mГЎs просто. У нашего dataframe 1 есть следующее:

      B       C       A       D        E       F       G      H
0   sergio  raul    maria   jose    arturo  adolfo  juana   pedro

Наш damaframe 2 (у которого есть новые имена:

    old new
0   A   a
1   B   b
2   C   c
3   D   d
4   E   e
5   F   f
6   G   g
7   H   h

Сейчас мы сохраняем имена колонн, не переводя второго dataframe (часть astype('str') на всякий случай есть символы, которые затрудняли бы tipado, или, если бы колонны пошли nГєmeros). В конце концов становится отвечающим современным требованиям имя колонн первого dataframe.

columnas_viejas = df_traduccion['old'].astype('str')
df_antiguo = df_antiguo[columnas_viejas]
df_antiguo.columns = df_traduccion['new']

Результат - следующий:

      a        b     c        d        e      f       g       h
0   maria   sergio  raul    jose    arturo  adolfo  juana   pedro

Надеялся, что он подал тебя, приветствие.

0
ответ дан 21.12.2019, 12:13

Теги

Похожие вопросы