[pyar] Columna con lista en dataframe

Ariel Rossanigo arielrossanigo en gmail.com
Sab Ene 13 12:31:32 ART 2018


Si entendí bien queres contar cuantas veces aparece un numero dado, por ej,
42.
Si es así, podes hacer un apply para contar cuantas veces aparace el 42 en
cada lista, luego un sum para saber la cantidad total.

In [1]: import pandas as pd

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]: f= df.apply(lambda l: len([x for x in l[0] if x==u'42']),
axis='columns')
In [4]: f
Out[4]:
0    2
1    1
2    1
3    2
dtype: int64

In [5]: f.sum()
Out[5]: 6


En todo eso, l[0] es la lista que se está procesando actualmente.

Saludos!

El 13 de enero de 2018, 09:24, Augusto Tononi<adtononi en gmail.com> escribió:

> Hola Gonzalo, gracias por responder!
>
> Si, más o menos eso quería. Igual sigue estan difícil porque mis elementos
> son u'1087', u'152', etc etc
> Yo lo que hice por ahora es utilizar expresiones regulares para obtener
> solo los numeros entre comillas. Algo así
>
> import re
> re.findall(r'\d+', dataset.Audiencias[0])
>
> y obtengo
>
> ['1087',
>  '129',
>  '1348',
>  '144',
>  '150',
>  '152',
>  '3013',
>  '3014',
>  '3015',
>  '3018',
>  '302',
>  '3039',
>  '3055',
>  '314',
>  '3450',
>  '352',
>  '36',
>  '3843',
>  '3844',
>  '3913',
>  '460',
>  '5',
>  '560',
>  '563',
>  '569',
>  '6731',
>  '735']
>
> Esto me viene bárbaro, porque podría hacer un for anidado con un if y contabilizar el número que quiero.
>
> El problema ahora es como aplicarlo a TODO el dataset, ahí solo obtengo el indice 0 de Audiencias, y tiene un Millón....
>
> Gracias!
>
>
> El 13 de enero de 2018, 9:16, Gonzalo Zigaran <gjzigaran en gmail.com>
> escribió:
>
>> Hola Augusto,
>>
>> Si no entiendo mal, lo que buscas es quedarte con un valor de cada lista
>> que tenes en cada fila para una columna particular? Tal vez podrías hacer
>> algo asi:
>>
>>
>> In [1]: import pandas as pd
>>
>> In [2]: df = pd.DataFrame({"c1": [["A", "B", "C"], ["D", "E"]]})
>>
>> In [3]: df
>> Out[3]:
>>           c1
>> 0  [A, B, C]
>> 1     [D, E]
>>
>> In [4]: df['c1'].apply(lambda x: x[1])
>> Out[4]:
>> 0    B
>> 1    E
>> Name: c1, dtype: object
>>
>>
>> Espero que sea por ahí,
>> Saludos!
>>
>> El 13 de enero de 2018, 8:49, Augusto Tononi <adtononi en gmail.com>
>> escribió:
>>
>>> Gracias por responder Cristhian!
>>> No me serviría de mucho .loc, ya que entra por [indice, columna]. Y se
>>> complica porque yo tengo una lista de varios elementos en cada indice de la
>>> columna, de la cual quiero extraer uno solo.
>>>
>>>
>>> El 12 de enero de 2018, 20:03, Cristhian Boujon <
>>> cristhianboujon en gmail.com> escribió:
>>>
>>>> Hola Augusto,
>>>>
>>>> Para acceder a cada elemento, lo podés hacer con .loc
>>>> <https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.loc.html>.
>>>> Ejemplo:
>>>> In [3]: import pandas as pd
>>>>
>>>> In [4]: df = pd.DataFrame({"c1": ["A", "B", "C"]})
>>>>
>>>> In [5]: df.loc[1]
>>>> Out[5]:
>>>> c1    B
>>>> Name: 1, dtype: object
>>>>
>>>> In [6]: df.loc[1, "c1"]
>>>> Out[6]: 'B'
>>>>
>>>> Espero que te sirva.
>>>> Saludos!
>>>>
>>>>
>>>> ---
>>>> *If you want to know more about me, you can check:*
>>>> * <http://github.com/Overflow012> [image:
>>>> https://www.linkedin.com/in/cristhian-boujon/]
>>>> <https://www.linkedin.com/in/cristhian-boujon/> [image:
>>>> http://overflow012.wordpress.com/] <http://overflow012.wordpress.com/>*
>>>>
>>>>
>>>> 2018-01-12 19:47 GMT-03:00 Augusto Tononi <adtononi en gmail.com>:
>>>>
>>>>> Buenos días, les hago una consulta.
>>>>>
>>>>> Tengo un csv que abri con pandas, y una de las columnas tiene una
>>>>> lista en cada indice. Por ejemplo [u'129', u'152', u'32', u'561', u'563
>>>>> ....]
>>>>> Mi pregunta es, como hago para acceder a cada elemento? Necesito
>>>>> contabilizar uno en especial, en todo el dataset
>>>>>
>>>>> Gracias
>>>>>
>>>>> _______________________________________________
>>>>> Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar
>>>>> Sitio web: http://www.python.org.ar/
>>>>>
>>>>> Para administrar la lista (o desuscribirse) entrar a
>>>>> http://listas.python.org.ar/listinfo/pyar
>>>>>
>>>>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>>>>> Argentina - http://www.usla.org.ar
>>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar
>>>> Sitio web: http://www.python.org.ar/
>>>>
>>>> Para administrar la lista (o desuscribirse) entrar a
>>>> http://listas.python.org.ar/listinfo/pyar
>>>>
>>>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>>>> Argentina - http://www.usla.org.ar
>>>>
>>>
>>>
>>> _______________________________________________
>>> Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar
>>> Sitio web: http://www.python.org.ar/
>>>
>>> Para administrar la lista (o desuscribirse) entrar a
>>> http://listas.python.org.ar/listinfo/pyar
>>>
>>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>>> Argentina - http://www.usla.org.ar
>>>
>>
>>
>> _______________________________________________
>> Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar
>> Sitio web: http://www.python.org.ar/
>>
>> Para administrar la lista (o desuscribirse) entrar a
>> http://listas.python.org.ar/listinfo/pyar
>>
>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>> Argentina - http://www.usla.org.ar
>>
>
>
> _______________________________________________
> Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar
> Sitio web: http://www.python.org.ar/
>
> Para administrar la lista (o desuscribirse) entrar a
> http://listas.python.org.ar/listinfo/pyar
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20180113/f356592d/attachment.html>


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