¿Cómo seleccionar una fila para cada valor distinto para una columna particular y se fusionan para formar una nueva trama de datos en Python?

Vaidehi:

El conjunto de datos que estoy usando es similar al siguiente. Es un video la que los subtítulos conjunto de datos con subtítulos de acuerdo con la columna 'Descripción'.

Video_ID       Description
mv89psg6zh4    A bird is bathing in a sink.
mv89psg6zh4    A faucet is running while a bird stands.
mv89psg6zh4    A bird gets washed.
mv89psg6zh4    A parakeet is taking a shower in a sink.
mv89psg6zh4    The bird is taking a bath under the faucet.
mv89psg6zh4    A bird is standing in a sink drinking water.
R2DvpPTfl-E    PLAYING GAME ON LAPTOP.
R2DvpPTfl-E    THE MAN IS WATCHING LAPTOP.
l7x8uIdg2XU    A woman is pouring ingredients into a bowl.
l7x8uIdg2XU    A woman is adding milk to some pasta.
l7x8uIdg2XU    A person adds ingredients to pasta. 
l7x8uIdg2XU    the girls are doing the cooking.

Sin embargo, el número de subtítulos para cada vídeo es diferente y no uniforme.

Tengo la intención de extraer una fila para una video_id única y formar una nueva trama de datos de la fusión de estas filas únicas. Además, para eliminar la misma fila de la trama de datos existente.

El resultado que quiero debería tener este aspecto:

1- trama de datos

Video_ID       Description
mv89psg6zh4    A faucet is running while a bird stands.
mv89psg6zh4    A bird gets washed.
mv89psg6zh4    A parakeet is taking a shower in a sink.
mv89psg6zh4    The bird is taking a bath under the faucet.
mv89psg6zh4    A bird is standing in a sink drinking water.
R2DvpPTfl-E    THE MAN IS WATCHING LAPTOP.
l7x8uIdg2XU    A woman is adding milk to some pasta.
l7x8uIdg2XU    A person adds ingredients to pasta. 
l7x8uIdg2XU    the girls are doing the cooking.

2- trama de datos

Video_ID       Description
mv89psg6zh4    A bird is bathing in a sink.
R2DvpPTfl-E    PLAYING GAME ON LAPTOP.
l7x8uIdg2XU    A woman is pouring ingredients into a bowl.

De manera que las filas son, básicamente, se mudaron de la trama de datos existente para formar una nueva trama de datos.

Quang Hoang:

Se puede utilizar groupby()para probar el índice:

s = df.index.to_series().groupby(df['Video_ID']).apply(lambda x: x.sample(n=1))

# random unique
df.loc[s]

# rest of data
df.drop(s)

Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=388051&siteId=1
Recomendado
Clasificación