2017-11-14 9 views
1

Ich arbeite an einem Projekt, das automatische deskriptive Analyse von Daten durchführt. In einer Codezeile sende ich eine Zeile eines Datenframes und ich möchte, dass alle Werte in Spalten in einer einzelnen Liste zurückgegeben werden.Verknüpfen von Werten von Spalten mit einer Liste in Python

Die Codezeile ist:

file_name1['validate'] = file_name1.apply(lambda x: ast.literal_eval(x[2]) + [x[3]] + [x[4]] + [x[5]] + [x[0]] + [x[1]], axis=1) 

und die filename1 sieht aus wie dieses

Value_share_total_next Value_share_total_prev Path           IYA  upper  lower 
1497852    1270937    ['CVS + ALB + LNG CORP WO HI CENSUS TA'] 117.85415 91.945763 66.936457 

ich diese Werte in einer Liste verketten möchten, und ich erhalte den Fehler als:

ValueError: Wrong number of items passed 6, placement implies 1 

EDIT: Das Problem, mit dem ich konfrontiert bin, ist nur, wenn die Länge meines Datenrahmens genau 1 ist. Wenn die Länge meines Datenrahmens ist> 1, dann funktioniert die Codezeile. Ich könnte eine Bedingung wenn ich sonst hinzufügen, aber ich muss wissen, warum es nicht funktioniert. Kann ich eine Funktion nicht auf einen einzelnen oder den Datenrahmen anwenden?

+0

dies helfen können: https: //stackoverflow.com/questions/ 33677780/valueerror-false-Anzahl-von-Items-passed-500-placement-implices-1-python-and-pa – technerd

+0

@technerd Ich habe diese Frage bereits überprüft, aber sie bezieht sich nicht auf meine Situation. Die Codezeile sollte eigentlich funktionieren. – pissall

Antwort

0

Für jede Zeile übergeben Sie eine Liste von 6 Elementen, wenn nur ein Platz zugewiesen ist (eine Spalte: 'validate'). verstehen Um sicherzustellen, dass Pandas die Daten geben Sie (eine Liste) übergeben möchten und nicht versuchen, es zu entpacken Sie Klammern verwenden:

file_name1['validate'] = file_name1.apply(lambda x: (ast.literal_eval(x[2]) + [x[3]] + [x[4]] + [x[5]] + [x[0]] + [x[1]]), axis=1) 
+0

Ich werde das versuchen und Sie wissen lassen. – pissall

+0

Es hat nicht funktioniert. Ich habe meine Frage bearbeitet. Wenn du mir helfen könntest, wäre das großartig. Danke im Voraus. – pissall

Verwandte Themen