Wie Sie sehen können, gibt es ein Suffix mit einer inkrementellen Zählung für jedes Mal, wenn ein Name eine Wiederholungsfarbe hat. Wenn ein Name nur einmal eine Farbe hat, wird kein Suffix hinzugefügt.
WAS ICH VERSUCHT HABE
Ich habe darüber nachgedacht, eine .groupby() mit einem Aggregat von .value_counts() zu nehmen, um eine Gesamtzahl zu erhalten, und diese bei Bedarf irgendwie zum Zuweisen der Suffixe zu verwenden. Hier ist eine Idee, die ich hatte und die sehr ineffizient erscheint:
# group by name aggregate color value counts
gb = df.groupby(['Name']).agg(Color_count=('Color','value_counts')).reset_index()
# keep only counts that are >1 ie need a suffix
gb = gb.loc[gb.Color_count > 1].copy()
# merge back to original df
df.merge(gb, on=['Name','Color'],how='left').fillna(0)
# from here, somehow start an incremental suffix for nonzero values of `Color_count`...
SETUP Ich habe einen Datenrahmen, df [code]import pandas as pd
pd.DataFrame( { 'Name':['foo','foo','foo','bar','bar','bar','baz','baz','baz'], 'Color':['red','blue','red','green','green','blue','yellow','orange','red'] } ) [/code] GEWÜNSCHTE AUSGABE Ich möchte für jeden Namen ein Aufzählungssuffix hinzufügen, der eine doppelte Farbe hat [code]pd.DataFrame( { 'Name':['foo_1','foo','foo_2','bar_1','bar_2','bar','baz','baz','baz'], 'Color':['red','blue','red','green','green','blue','yellow','orange','red'] } )
[/code] Wie Sie sehen können, gibt es ein Suffix mit einer inkrementellen Zählung für jedes Mal, wenn ein Name eine Wiederholungsfarbe hat. Wenn ein Name nur einmal eine Farbe hat, wird kein Suffix hinzugefügt. WAS ICH VERSUCHT HABE Ich habe darüber nachgedacht, eine .groupby() mit einem Aggregat von .value_counts() zu nehmen, um eine Gesamtzahl zu erhalten, und diese bei Bedarf irgendwie zum Zuweisen der Suffixe zu verwenden. Hier ist eine Idee, die ich hatte und die sehr ineffizient erscheint: [code]# group by name aggregate color value counts gb = df.groupby(['Name']).agg(Color_count=('Color','value_counts')).reset_index()
# keep only counts that are >1 ie need a suffix gb = gb.loc[gb.Color_count > 1].copy()
# merge back to original df df.merge(gb, on=['Name','Color'],how='left').fillna(0)
# from here, somehow start an incremental suffix for nonzero values of `Color_count`... [/code]
Ich habe einen Pandas -Datenfreame mit mehreren Zeilen, und einige Zeilen haben den gleichen Wert in einer bestimmten Spalte (z. B. ID). Ich möchte die doppelten Zeilen entfernen, während ich nur das...
Ich baue ein Gesichtserkennungssystem mit Python und einem Deep-Learning-Modell auf (experimentiere derzeit mit FaceNet / ArcFace + PyTorch). Das System erkennt Identitäten, auf die das Modell...
Ich bin irgendwie neu in MySQL. Ich habe seit einer Woche mit diesem Problem zu kämpfen und komme nicht weiter ...
In einfachem Text möchte ich, dass MySQL dies in einer Aussage durchführen soll:...