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)