Quiero encontrar todas las filas donde hay un cierto valor dentro del valor de lista de la columna.
Así que imagina que tengo una dataframe
configurada así:
| placeID | users |
------------------------------------------------
| 134986| [U1030, U1017, U1123, U1044...] |
| 133986| [U1034, U1011, U1133, U1044...] |
| 134886| [U1031, U1015, U1133, U1044...] |
| 134976| [U1130, U1016, U1133, U1044...] |
¿Cómo puedo obtener todas las filas donde 'U1030'
existe en la columna de usuarios?
O ... ¿el problema real es que no debería tener mis datos ordenados de esta manera, y debería explotar esa columna para tener una fila para cada usuario?
¿Cuál es la forma correcta de abordar esto?
2 respuestas
Cuando desee verificar si existe un valor dentro de la columna cuando el valor en la columna es una lista, es útil usar mapa función.
Implementándolo como a continuación, con una función lambda en línea, la lista de valores almacenados en la columna 'usuarios' se asigna al valor u, y el ID de usuario se compara con él ...
Realmente la respuesta es bastante sencilla cuando miras el código a continuación:
# user_filter filters the dataframe to all the rows where
# 'userID' is NOT in the 'users' column (the value of which
# is a list type)
user_filter = df['users'].map(lambda u: userID not in u)
# cuisine_filter filters the dataframe to only the rows
# where 'cuisine' exists in the 'cuisines' column (the value
# of which is a list type)
cuisine_filter = df['cuisines'].map(lambda c: cuisine in c)
# Display the result, filtering by the weight assigned
df[user_filter & cuisine_filter]
La forma en que ha almacenado los datos me parece bien. No necesita cambiar el formato de almacenamiento de datos.
Pruebe esto :
df1 = df[df['users'].str.contains("U1030")]
print(df1)
Esto le dará todas las filas que contienen el usuario especificado en formato df
.
Preguntas relacionadas
Nuevas preguntas
python
Python es un lenguaje de programación multipropósito, de tipificación dinámica y de múltiples paradigmas. Está diseñado para ser rápido de aprender, comprender y usar, y hacer cumplir una sintaxis limpia y uniforme. Tenga en cuenta que Python 2 está oficialmente fuera de soporte a partir del 01-01-2020. Aún así, para preguntas de Python específicas de la versión, agregue la etiqueta [python-2.7] o [python-3.x]. Cuando utilice una variante de Python (por ejemplo, Jython, PyPy) o una biblioteca (por ejemplo, Pandas y NumPy), inclúyala en las etiquetas.