[pyar] Columna con lista en dataframe

Augusto Tononi adtononi en gmail.com
Dom Ene 14 19:41:09 ART 2018


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

El 13/1/18, Ariel Rossanigo <arielrossanigo en gmail.com> escribió:
> 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
>>
>


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