[pyar] Columna con lista en dataframe

Ariel Rossanigo arielrossanigo en gmail.com
Lun Ene 15 08:54:39 ART 2018


El 14 de enero de 2018, 19:41, Augusto Tononi<adtononi en gmail.com> escribió:

> Gracias por responder Ariel.
> Eso me sirve, es lo que buscaba. Pero ahora me doy cuenta que la lista
> está dentro de "", por lo que sería un String. O sea
> dataset['Audiencias'] me devuelve "[u'14',u'58',....] y no podría
> aplicarlo
>

Con el apply "aplicas" una función cualquiera a, por ejemplo, una columna.
En esa función vos podes hacer lo que quieras.

Por ejemplo:

In [2]: df = pd.DataFrame({"c1": [
   ...:     "[u'1087',  u'129', u'42', u'144', u'150', u'42']",
   ...:     "[u'3013', u'3014', u'3015', u'42', u'302', u'3039']",
   ...:     "[u'3055', u'314', u'3450', u'352', u'36', u'42', u'3844']",
   ...:     "[u'3913', u'460', u'5', u'42', u'42', u'569', u'6731', u'735']"
   ...: ]})

In [3]: def f(value):
   ...:     l = eval(value)  # hacer algo inteligente en lugar de esto
   ...:     return len([x for x in l if x==u'42'])
   ...:
   ...: f= df.c1.apply(f)
   ...: f
   ...:
Out[3]:
0    2
1    1
2    1
3    2
Name: c1, dtype: int64

En f, value toma cada uno de los valores de la columna c1. Por las dudas,
eval lo usé para el ejemplo, si los datos vienen de un csv (o casi
cualquier otro escenario), usar eval no es seguro. Tratá de evitarlo.

Saludos
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20180115/87438b3a/attachment.html>


Más información sobre la lista de distribución pyar