2017-07-17 4 views
0

BefehlWie multipliziert man zwei Spalten eines Pandas-Datenrahmens (Zeilenmultiplikation) und speichert das Ergebnis in einer neuen Spalte?

df_main['Ranking'] = df_main['Porosity']*['Permeability'] gibt -

TypeError: can't multiply sequence by non-int of type 'str'

Das attacehd Bild (https://i.stack.imgur.com/0Asu3.png) weitere Informationen. Mein Code-Schnipsel ist bei i.stack.imgur.com/ehqF5.png)

Weitere Informationen: https://i.stack.imgur.com/0Asu3.png

+0

Haben Sie versucht, 'df_main [ 'Bewertung'] = df_main [ 'Porösität'] * df_main [ Durchlässigkeit '] '? – SethMMorton

Antwort

0

Zuerst Sie den Spaltentyp der beiden Spalten Schwimmer konvertieren müssen (sonst kann man sie nicht multiplizieren) . Sie können das tun, wie folgt:

df_main[['Porosity', 'Permeability']] = df_main[['Porosity', 'Permeability']].astype(float) 

Dann können Sie die neue Spalte durch Multiplikation definieren:

df_main['Ranking'] = df_main['Porosity']*df_main['Permeability'] 
+1

Ich bin mir nicht sicher, ob der '.astype (float)' Schritt benötigt wird. Ich denke, das Problem war, dass sie versuchten, die Spalte mit einer Liste aus einzelnen Elementen zu multiplizieren, die nur eine Zeichenfolge enthielt. – SethMMorton

+1

@SethMMorton in der Frage in der Frage die Syntax des Produkts scheint richtig. –

+0

Als ich korrigierte Form von Miriam's Antwort versuchte, bekam ich den folgenden Fehler Wert Fehler: Konnte String in Float nicht konvertieren: '12 .863486 2 ' –

Verwandte Themen