2017-12-07 5 views
0

Ich habe diese Funktion, die (unter anderem) soll eine Baseball-Spiele CSV-Datei lesen, erstellen Sie eine Liste aller Teams (dieser Teil funktioniert). Die Datei enthält Match-Daten und Home-Match-Daten. Die Idee besteht darin, die Daten zu teilen, die Spalten zu ändern und schließlich die Übereinstimmungsdaten unabhängig von der Position anzuhängen (dieser letzte Teil funktioniert nicht). Anstatt meine Auswärts- und Heimspiele in einem Datenrahmen anzuhängen, überschreibt der Code die Heimspiele vollständig.Der Versuch, zwei Pandas DataFrames innerhalb einer Schleife anzuhängen, bewirkt, dass die erste überschrieben wird

Ich habe meinen Code zusammen mit der Frage beigefügt.

Vielen Dank für Ihre Hilfe.

df = pd.read_csv('C:\\Users\\data.csv', index_col=0) 

unique = df['Team Home'].unique() 
inplace = ['H', 'A'] 
myway = pd.DataFrame() 
for i in range(len(unique)): 
    for inp in inplace: 
     if inp == 'H': #loop to find column names with 'Home' and 'Away' Labels 
      located = 'Home' 
      character = 'H' 
     else: 
      located = 'Away' 
      character = 'A' 
     noseclean_h = df[df['Team {}'.format(located)].isin([unique[i]])] 
     noseclean_h = noseclean_h.sort_values('Date') 
     home = [rr for rr in rolling_haiting if character in rr] 
     new_home = [rr.replace('{}'.format(located), '').strip() if character in rr and len(rr) > 2 
        else rr.replace(character, '') for rr in home] 
     new_home.append('Date') 
     new_home.append('Team') 
     home.append('Date') 
     home.append('Team {}'.format(located)) 
     ncleaned = ncleaned[home] 
     d = dict(zip(home, new_home)) 
     ncleaned .rename(columns=d, inplace=True) 
     nosecleaned_h['Date'] = pd.to_datetime(ncleaned ['Date']) 
     nosecleaned_h.set_index('Date', inplace=True) # set index to date to prevent overlapping 
     nosecleaned_h = nosecleaned_h.append(nosecleaned_h, ignore_index=False) 
    print(nosecleaned_h) 
....etc 

Antwort

0

Auf jeder Schleife werden die Neuzuweisung Sie die Variable noseclean_h:

noseclean_h = df[df['Team {}'.format(located)].isin([unique[i]])] 

auf jeder Schleife Dann wird die nosecleaned_h = nosecleaned_h.append(nosecleaned_h, ignore_index=False) ersetzt.

Verwandte Themen