una seleccionar recorrer filtros filas fila data con columnas python numpy dataframe pandas

recorrer - seleccionar filas y columnas en python



Pandas: combina cadenas e int columnas (4)

Tengo un siguiente DataFrame :

from pandas import * df = DataFrame({''foo'':[''a'',''b'',''c''], ''bar'':[1, 2, 3]})

Se parece a esto:

bar foo 0 1 a 1 2 b 2 3 c

Ahora quiero tener algo como:

bar 0 1 is a 1 2 is b 2 3 is c

¿Cómo puedo conseguir esto? Intenté lo siguiente:

df[''foo''] = ''%s is %s'' % (df[''bar''], df[''foo''])

pero me da un resultado incorrecto:

>>>print df.ix[0] bar a foo 0 a 1 b 2 c Name: bar is 0 1 1 2 2 Name: 0

Perdón por una pregunta tonta, pero este pandas: combinar dos columnas en un DataFrame no fue útil para mí.


El problema en su código es que desea aplicar la operación en cada fila. Sin embargo, la forma en que lo ha escrito toma todas las columnas ''bar'' y ''foo'', las convierte en cadenas y le devuelve una gran cadena. Puedes escribirlo así:

df.apply(lambda x:''%s is %s'' % (x[''bar''],x[''foo'']),axis=1)

Es más larga que la otra respuesta pero es más genérica (se puede usar con valores que no son cadenas).


También podrías usar

df[''bar''] = df[''bar''].str.cat(df[''foo''].values.astype(str), sep='' is '')


df[''bar''] = df.bar.map(str) + " is " + df.foo .


df.astype(str).apply(lambda x: '' is ''.join(x), axis=1) 0 1 is a 1 2 is b 2 3 is c dtype: object