Aquí tengo un marco de datos como el siguiente:
Variable Groups
1 [0-10]
1 [0-10]
2 [0-10]
2 [0-10]
3 [0-10]
3 [10-20]
4 [10-20]
4 [10-20]
5 [10-20]
5 [10-20]
Me gustaría obtener solo valores únicos para la Variable
columna, pero no quiero perder ningún duplicado que sea diferente Groups
, por ejemplo, esto:
Variable Groups
1 [0-10]
2 [0-10]
3 [0-10]
3 [10-20]
4 [10-20]
5 [10-20]
Tenga en cuenta que todavía hay un 3 duplicado porque había uno en cada grupo. He intentado
df_unique = df['Groups'].groupby(df['Variable']).unique().apply(pd.Series)
pero esto solo está volviendo un completo desastre. No estoy seguro de qué hacer, se agradece la ayuda.
Puede utilizar SeriesGroupBy.unique()
junto con .explode()
y .reset_index()
, de la siguiente manera:
df.groupby('Variable')['Groups'].unique().explode().reset_index()
Otra solución es utilizar GroupBy.first()
, de la siguiente manera:
df.groupby(['Variable', 'Groups'], as_index=False).first()
Resultado:
Variable Groups
0 1 [0-10]
1 2 [0-10]
2 3 [0-10]
3 3 [10-20]
4 4 [10-20]
5 5 [10-20]
Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.
En caso de infracción, por favor [email protected] Eliminar
Déjame decir algunas palabras