Pythonで新しいデータフレームを形成するために、特定の列とマージするための各個別の値ごとに1行を選択する方法?

ベイデヒ:

データセットは、私はこのようなルックスを使用しています。これは、列「説明」の下にキャプションを設定したデータをキャプションビデオです。

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.

しかし、各動画のキャプションの数が異なると、一様ではありません。

私は1つのユニークなVIDEO_IDのための1行を抽出し、これらのユニークな行をマージする新しいデータフレームを形成していきます。また、既存のデータフレームから同じ行を削除します。

私が望む結果は次のようになります。

データフレームの1-

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 -

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.

だから、行は基本的に新しいデータフレームを形成するために、既存のデータフレームから移動していること。

クアンホアン:

あなたは使用することができgroupby()、インデックスをサンプリングします:

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)

おすすめ

転載: http://10.200.1.11:23101/article/api/json?id=388047&siteId=1