2016-07-29 5 views
0

Ich habe eine Pandas Datenrahmen von n x m und eine Pandas-Serie der Länge g. Wie kann ich den Datenrahmen basierend auf dem Index nach Serien teilen?Pandas teilen df n x m durch Serienlänge g nach Index

Bis jetzt habe ich die Serie mit dem Datenrahmen und der einfachen Teilung der Zelle durch die andere zusammengeführt.

Dank

+1

Können Sie einen Vertreter abgeben Beispiel, wie es wirklich abhängt, zum Beispiel, wenn die Länge nicht übereinstimmt dann wird es – EdChum

Antwort

0

IIUC wenn die Länge der Series ist die gleiche wie Länge von df Verwendung div:

df = pd.DataFrame({'A':[1,2,3], 
        'B':[4,5,6], 
        'C':[7,8,9], 
        'D':[1,3,5], 
        'E':[5,3,6], 
        'F':[7,4,3]}) 

print (df) 
    A B C D E F 
0 1 4 7 1 5 7 
1 2 5 8 3 3 4 
2 3 6 9 5 6 3 

s = pd.Series([1,2,3]) 
print (s) 
0 1 
1 2 
2 3 
dtype: int6 

print (df.div(s, axis=0)) 
    A B C   D E F 
0 1.0 4.0 7.0 1.000000 5.0 7.0 
1 1.0 2.5 4.0 1.500000 1.5 2.0 
2 1.0 2.0 3.0 1.666667 2.0 1.0 

Wenn Längen unterschiedlich sind, erhalten Sie NaN:

s = pd.Series([1,2]) 
print (s) 
0 1 
1 2 
dtype: int64 

print (df.div(s, axis=0)) 
    A B C D E F 
0 1.0 4.0 7.0 1.0 5.0 7.0 
1 1.0 2.5 4.0 1.5 1.5 2.0 
2 NaN NaN NaN NaN NaN NaN 
+0

fehlschlagen, wenn meine qu Es war nicht klar, ich habe verschiedene Längen, aber die Indizes sind gleich. Also würde ich gerne durch Indizes teilen – tadalendas

+0

Also funktioniert meine Lösung nicht für Sie? Wenn nicht, können Sie die gewünschte Ausgabe mit meinen Samples hinzufügen? – jezrael

+0

hatte einen kleinen Typ, danke für die Lösung – tadalendas

Verwandte Themen