2017-09-25 2 views
-1

Ich habe eine for-Schleife erstellt und ich bekomme einen Datenrahmen (unten angegeben) als eine Ausgabe. Ich hänge alle Ausgaben an eine leere Liste an. Ich bin die Ausgänge immer aber mit einer Warnung von Leistung als:Wie löst man die Leistungswarnung beim Hinzufügen eines Datenrahmens in einer Liste in einer for-Schleife?

PerformanceWarning: Hinzufügen/Subtraktion Array von DateOffsets zu Serie nicht vektorisiert

Ausgangsdatenrahmen:

Intercept Slope 0 3,008165 -,001024 Intercept Slope 0 2.153798 0.001749

Code:

coeff = [] 

for x in something: 
    #do something 
    reg_df = DataFrame({"Slope":slope,"Intercept":intercept}) 
    coeff.append(reg_df) 

Warum bekomme ich diese Warnung?

Wie kann ich das lösen?

Jede Hilfe wäre willkommen.

Antwort

0

ich besser denken ist Werte anhängen DataFrame Konstruktor nur einmal aufzulisten und rufen:

L = [] 
for x in range(2): 
    #do something 
    slope = x * 2 
    intercept = x ** 2 
    L.append({"Slope":slope,"Intercept":intercept}) 

print (L) 
[{'Slope': 0, 'Intercept': 0}, {'Slope': 2, 'Intercept': 1}] 

df = pd.DataFrame(L) 
print (df) 
    Intercept Slope 
0   0  0 
1   1  2 

Eine weitere ähnliche Lösung:

L = [] 
for x in range(2): 
    #do something 
    slope = x * 2 
    intercept = x ** 2 
    L.append([slope,intercept]) 

print (L) 
[[0, 0], [2, 1]] 

df = pd.DataFrame(L, columns=['Intercept','Slope']) 
print (df) 
    Intercept Slope 
0   0  0 
1   2  1 
+0

Nach der ersten Methode, ich bin immer alle Werte in den einzelnen Listen? – Dheeraj

+0

Ich denke, in der ersten Methode bekommen dicioanries in Liste, in zweiten Listen in der Liste – jezrael

+0

nach dem Konvertieren von ihnen in einen Datenrahmen, bekomme ich die Ausgänge als Slope Intercept 0 [-0.00102418207681] [3.00816500711] – Dheeraj

Verwandte Themen