2017-05-26 14 views
-3

単一の列のすべての値を格納するリストを作成したいとします。 たとえば、私のファイルに 'FirstNames'という名前の列があり、最初の3行に '名前'列にはMerry、Pippin、Frodoがあります。CSVファイルの値をPythonのリストに格納する

私は[メリー、ピピン、フロド]のように見えるのリストを作成したいのですが、私はこのようにそれをやってみました

:リストのみに値を格納しません。しかし

import pandas as pd 
data = pd.read_csv(".../TrainingFile.csv") 
list = [] 
names = data['FirstNames'] 

for i in range(0,2): 
    list.append(names[i:i+1]) 

print(list) 

細胞と私にこのような出力できます:

名:姓、DTYPE:オブジェクト、1メリーを

名:姓、DTYPE:オブジェクト、2ピピン

名前:FirstName、dtype:object、3 Frodo

どうすれば変更できますか?助けてくれてありがとう。

ボーナス:範囲(0,2)ではなく、ファイル内にある行数をどのように定義することができますか?

+0

'for'ループの後にインデントを修正してください。 –

答えて

2

組み込み関数をマスキングするため、list,typeid ...などの予約語を変数として使用しないでください。

後のコードでは、listなどを使用します。

list = data['FirstNames'].tolist() 
#another solution for converting to list 
list1 = list(data['SecondNames']) 

非常に奇妙なエラーが発生し、デバッグは非常に複雑です。

だから、必要があります。

L = data['FirstNames'].tolist() 

または:

L = list(data['FirstNames']) 

をもIs it safe to use the python word “type” in my codeを確認することができます。

+0

私はすぐにこのコードを書いてこの質問をしましたが、あなたは正しいと思います!助けてくれてありがとう。 – memokerobi

+0

喜んで助けることができます!数時間のデバッグ後、私はこの予約語をもう一度使用しません;( – jezrael

+0

私の答えが役に立ったら、[accept](http://meta.stackexchange.com/a/5235/295067)それを忘れないでください。 – jezrael

-1

予約された変数名を使用しているためです。 listを使用する代わりに、list1などを変数名として使用します。

Pythonで予約されている変数名の一部は、dict、str、list、int、passなどです。誤って使用しています。それを避けてください。

関連する問題