Ich versuche, US-Abfragedaten zu analysieren, insbesondere versuche ich herauszufinden, welche Zustände sicher, marginal oder eng ("Nähe") sind. Ich habe einen Datenrahmen mit Umfrageergebnissen nach Zeit und ihrer 'Nähe'. Ich verwende diese Pandas-Anweisung, um eine Zusammenfassung der 'Nähe'-Einträge zu erhalten.Auswählen von Zeilen aus Pandas-Reihen, in denen Zeilen Arrays sind
s=self.daily.groupby('State')['closeness'].unique()
Dies gibt mir diese Serie (Auswahl der Kürze halber gezeigt):
State
AK [safe]
AL [safe]
CA [safe]
CO [safe, tight, marginal]
FL [marginal, tight]
IA [safe, tight, marginal]
ID [safe]
IL [safe]
IN [tight, safe]
Name: closeness, dtype: object
die Zeilen vom Typ Array ist, so zum Beispiel s[0]
gibt:
array(['safe'], dtype=object)
I Ich versuche aus dieser Serie auszuwählen, aber ich kann die Syntax nicht richtig machen. Zum Beispiel versuche ich nur die ‚sicheren‘ Staaten mit folgenden Syntax wählen:
ipdb> s[s == 'safe']
*** ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
dies funktioniert auch nicht:
test[test == ['safe'])
Hier ist, was würde ich tun: wählen Staaten, die "marginal" oder "eng" sind, wählen Staaten aus, die "sicher" und nur "sicher" sind und so weiter. Hat jemand eine Vorstellung von der Syntax, die ich verwenden sollte, oder von einem besseren Ansatz?
============ Hier ist eine Probe der Daten vor dem groupby:
ipdb> self.daily.head(3)
Date Democratic share Margin Method Other share \
0 2008-11-04 0.378894 -0.215351 Election 0.026861
1 2008-11-04 0.387404 -0.215765 Election 0.009427
2 2008-11-04 0.388647 -0.198512 Election 0.024194
Republican share State closeness winner
0 0.594245 AK safe Republican
1 0.603169 AL safe Republican
können Sie vor dem 'groupby' Beispieldaten bereitstellen. – shivsn
Danke shivsn - Probe zur Frage hinzugefügt –