2017-08-05 8 views
1

Iは、次の形式のCSVファイルを有する:すべての値が同じ列にある場合、csvファイルからデータを読み取る方法は?

"age","job","marital","education","default","balance","housing","loan" 
58,"management","married","tertiary","no",2143,"yes","no" 
44,"technician","single","secondary","no",29,"yes","no" 

をしかし、代わりにタブ(異なるカラム)によって分離されているから、それらはすべて同じ第1列に位置します。私がパンダを使ってこれを読んでみると、リストはリストの代わりに同じリストのすべての値を出力します。

マイコード:

dataframe = pd.read_csv("marketing-data.csv", header = 0, sep= ",") 
dataset = dataframe.values 
print(dataset) 

O/P:私は必要なもの

[[58 'management' 'married' ..., 2143 'yes' 'no'] 
[44 'technician' 'single' ..., 29 'yes' 'no']] 

[[58, 'management', 'married', ..., 2143, 'yes', 'no'] 
[44 ,'technician', 'single', ..., 29, 'yes', 'no']] 

それは私が何をしないのですか?

+0

テキストでは、タブで列を区切りたいとしていますが、予想される出力ではカンマが必要です。あなたは*印刷から批判されていないとあなたはどのように伝えられますか? –

+0

あなたが得るものと望むものとの違いは何ですか? – MaxU

答えて

2

私はあなたがで混乱していると思いますprint()カンマを表示しない出力。

デモ:

In [1]: df = pd.read_csv(filename) 

パンダ表現:

In [3]: df.values 
Out[3]: 
array([[58, 'management', 'married', 'tertiary', 'no', 2143, 'yes', 'no'], 
     [44, 'technician', 'single', 'secondary', 'no', 29, 'yes', 'no']], dtype=object) 

numpyのstring表現(print(numpy_array)の結果):表現

In [2]: df 
Out[2]: 
    age   job marital education default balance housing loan 
0 58 management married tertiary  no  2143  yes no 
1 44 technician single secondary  no  29  yes no 

numpyの

In [4]: print(df.values) 
[[58 'management' 'married' 'tertiary' 'no' 2143 'yes' 'no'] 
[44 'technician' 'single' 'secondary' 'no' 29 'yes' 'no']] 

結論:あなたのCSVファイルが正しく解析されました。

1

私は本当に[[

を...何をしたいと何を得るとの違いを参照してくださいが、csvモジュールを内蔵したcsvファイルを解析することは、あなたの希望する結果

import csv 
with open('file.csv', 'rb') as csvfile: 
    spamreader = csv.reader(csvfile, delimiter=',', quotechar='|') 
    print list(spamreader) 

を与えません

['58'、 '管理'、 '結婚しました'、 '仕事'、 '結婚'、 '結婚'、 '既婚' 「3次」、「いいえ」、「2143」、「はい」、「いいえ」]

[ '44'、 '技術'、 '一'、 '二'、 'ノー'、 '29'、 'はい'、 'ノー']

]

関連する問題