mit Python 3-Codierung und Pandas Version 0.18.1Wie Pandas Datenrahmen von Benutzereingaben
Ich versuche, mein Programm dynamischer zu gestalten, indem sie Benutzeroptionen verwenden, um Daten von Datenrahmen zu filtern.
Meine Fragen sind:
1) Wie kann ich meine Benutzerauswahl für die Filterung in Datenrahmen zur Verfügung?
2) Gibt es einen besseren Weg, dies zu tun? Mabye mit Funktion oder Klassen?
Angenommen meine df ist die folgende:
df.dtypes
PIID object
fy object
zone object
Wenn fy unterteilt:
df.groupby('fy').PIID.count()
fy
2014 38542
2015 33629
2016 32789
Wenn Zone unterteilt:
df.groupby('zone').PIID.count()
AZW - Acquisition Zone West 3909
NAZ - Northern Acquisition Zone 1167
SAZ - Southern Acquisition Zone 2983
Normalerweise kann ich erstellen Sie einfach einen neuen Datenrahmen mit Filtern, indem Sie Folgendes tun:
year = df['fy'] == '2016'
zone = df['zone'] == 'AZW - Acquisition Zone West'
newdf = df[year & zone]
Aber wie kann ich dies dynamischer machen, indem ich Benutzeroptionen zur Verfügung stelle?
An diesem Punkt gebe ich den Benutzer einige Optionen mit booleans für fy:
print ('What is the interested year?')
print ('1. 2014')
print ('2. 2015')
print ('3. 2016')
year = input('> ')
if year == '1':
year1 = df['fy'] == '2014'
elif year == '2':
year2 = df['fy'] == '2015'
Und einige booleans für Zone:
print ('What is the interested zone?')
print ('1. AZW - Acquisition Zone West')
print ('2. NAZ - Northern Acquisition Zone')
print ('3. SAZ - Southern Acquisition Zone')
zone = input('> ')
if zone == '1':
zone1 = df['zones'] == 'AZW - Acquisition Zone West'
elif zone == '2':
zone2 = df['zones'] == 'Northern Acquisition Zone'
An dieser Stelle ich weiß nicht, wie das erhalten Benutzerauswahl
newdf = df[choice1 & choice2]
wo Wahl 1 ist das Jahr und Wahl 2 ist die Zone.
Vielen Dank im Voraus für jede Hilfe!
Danke, Ralston! Du hast den Nagel auf den Kopf getroffen. Total gut genug, um es zu verallgemeinern. – david