2016-12-02 7 views
1

私は、各項目の改行を電子メールで受け取っています。コピーして貼り付けてから、csvとして保存し、スクリプトからPythonリストを作成するだけですデータ。ペーストからファイルへの列なので不適切な書式設定が行われていますが、変更すると改行がカンマで置き換えられますが、列から変換されているので、それは正しく表示され、mylist.values .tolist()はまだ動作しません。ここに私が持っていることと起こっていることがあります。私は、組み込みのcsvライブラリでこれを行うことができますが、Pに私はPython Pandasデータフレームのリストに列を変換する

メール形式をどのように行うのかと思いまして貼り付け:

フォックス チキン 猫私はcsvファイルに入れ 犬

そして、コンマを置く:

フォックス、 チキン、 猫、犬

何私は、出力のために取り戻す:

mylist.values.tolist()

[['Fox, nan'], ['Chicken, nan'], ['Cat, nan'], ['Dog, nan']] 

私はちょうど欲しい:

['Fox','Chicken', 'Cat', 'Dog'] 

さらに、場合私はmy_listを割り当てようとしています= mylist.values.tolist()サポートされていないオペランド 'str'と 'type'を例外とします。

私はパンダがビルトインよりも好きなので、助けていただければ幸いです。エレガントにできない場合、私は戻らなければなりません。

+0

あなたの出力は入力した通りですか?それは「フォックス・ナン」「チキン・ナン」「キャット・ナン」「ドッグ・ナン」ではないのですか? – DyZ

+0

'mylist'はどんなタイプですか?割り当ての例外は奇妙です、どうすれば私はそれを複製できますか?例外の最小限の完全な例を入れてください。 – eguaio

+0

あなたは正しいです、私はコピーして貼り付けなかったので、それは数百のMACアドレスです、申し訳ありません。 – Fallacy11

答えて

0

あなたの出力は(私はそれがあると信じている)[['Fox', nan], ['Chicken', nan], ['Cat', nan], ['Dog', nan]]であれば、あなたは二つの部分にリストを解凍することができます

names,nans=zip(*mylist.values.tolist()) 
# both names and nuns are tuples 
names = list(names) 
+1

私はそれがちょっと変わったと思いますが、 'tolist()'メソッドは本当に質問に記載されているように、カンマで区切られたすべての値をエンコードする文字列のリストを返します。これは動作しません。 – eguaio

+0

奇妙な、確かに。 – DyZ

0

試してみてください。

slist = mylist.values.tolist() 
ilist = [l[0].split(',')[0].strip() for l in slist] 
0

コピー&ペーストからの書式設定何とかパンダがあなたに(4 x 2)テーブルを与えたと思うようになっています。したがって、この特定のケースでは、データフレームがmylistの場合、mylist.iloc[:,0].values.tolist()が必要になります。

実際には、ファイルを文字列に読み込んで.split()を呼び出すだけで、はるかに簡単で、高速で、より堅牢です。

関連する問題