2017-11-14 6 views
1

私はデータの自動記述分析を行うプロジェクトに取り組んでいます。コード行では、データフレームの行を送信しています。列内のすべての値を1つのリストに戻したいとします。Pythonの列からリストへの値の連結

コードの行は次のとおりです。

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) 

とファイル名1は、この

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 

のように見える私は、リスト内のこれらの値を連結したい、と私のようにエラーを取得しています:

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

EDIT:私が直面している問題は、自分のデータフレームの長さが正確に1である場合のみです。長さ私のデータフレームの数が1より大きい場合、コード行が機能しています。 if else条件を追加することはできますが、なぜ動作していないのかを知る必要があります。単一またはデータフレームに機能を適用することはできませんか?

+0

これが役立つことがあります。https://stackoverflow.com/questions/ 33677780/valueerror-wrong-number-of-items-passed-500-placement-implies-1-python-and-pa – technerd

+0

@technerdこの質問は既にチェックされていますが、私の状況には関係ありません。コード行は実際に動作しているはずです。 – pissall

答えて

0

すべての行について、1つのスペースしか割り当てられていない場合は、6つの項目のリストを渡します(1つの列: 'validate')。作るために必ずパンダは、データはあなたが(リスト)を渡したいタイプを理解し、あなたは括弧を使用することができ、それを解凍しようとしません。

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

私はこれを試し、あなたに知らせます。 – pissall

+0

動作しませんでした。私は自分の質問を編集しました。あなたが私を助けることができれば、それは素晴らしいことでしょう。前もって感謝します。 – pissall