python lista pandas: agregue una nueva columna al marco de datos del diccionario




nueva columna en pandas (3)

Me gustaría agregar una columna 'D' a un marco de datos como este:

U,L
111,en
112,en
112,es
113,es
113,ja
113,zh
114,es

basado en el siguiente diccionario:

d = {112: 'en', 113: 'es', 114: 'es', 111: 'en'}

para que el marco de datos resultante aparezca como:

U,L,D
111,en,en
112,en,en
112,es,en
113,es,es
113,ja,es
113,zh,es
114,es,es

Hasta ahora probé el método pd.join() pero no puedo descifrar cómo funciona con Dictionaries.


Llamar map y pasar el dict, esto realizará una búsqueda y devolverá el valor asociado para esa clave:

In [248]:

d = {112: 'en', 113: 'es', 114: 'es', 111: 'en'}
df['D'] = df['U'].map(d)
df
Out[248]:
     U   L   D
0  111  en  en
1  112  en  en
2  112  es  en
3  113  es  es
4  113  ja  es
5  113  zh  es
6  114  es  es

TypeError: 'dict' object is not callable error TypeError: 'dict' object is not callable para la solución de EdChum cuando intento usar index.map () ... Y no he encontrado una manera de obtener el índice como Serie.

Así que encontré otra solución a este problema creando primero un objeto Serie del objeto dict.

new_d = pd.Series(d)

Y luego haz el pd.unirse con la columna que te gusta. Eso puede ayudar.


Aquí hay una manera más simple que debería funcionar bien también:

df["D"] = pd.Series(d)

Nota: Las claves dict deben estar en el índice del DataFrame para esto.





pandas