2016-09-19 13 views
-1
def rowfilter(): 
    field_data = {} 
    try: 
     csv_read = csv.reader(open('sample.csv',), delimiter=',', quotechar='|') 
     for row in csv_read: 
      for field in row[7]: 
       print(field)  


    except FileNotFoundError: 
      print("File not found") 

rowfilter() 

このコードは正常に実行されますが、このコードではuser_inputより前にデータを出力します。例: ユーザーが5を入力すると、関連するすべての列とともに、1から5のすべての詳細が印刷されます。PythonでCSVファイルから列を読み取る方法

答えて

0
def rowfilter(col1, col2): 

    try: 
     csv_read = csv.reader(open('items.csv'), delimiter=',', quotechar='|') 
     for row in csv_read: 
     print(row[int(cols[0]):int(cols[1])]) 

    except FileNotFoundError: 
      print("File not found") 

inputrows = input("Enter columns in the format: col1 col2 ") 
rowfilter(inputrows.split())) 

あなたのコメントごとにこの回答を編集しました.csvリーダーが読んだら、csvの行をリストとして扱うことは可能です。したがって、このメソッドはcol1からcol2の列を出力します。 Pythonのインデックスは0であることに注意してください。

+0

のための仕事です。たとえば、私は行の値が3からnに始まるすべての列が必要です。 –

+0

私はあなたの要件に応じて私の答えを編集しました。 –

0

これはテーブルからUSER_INPUTのための特定/特定の列の読み方をほぼ確実pandas

import pandas as pd 

df = pd.read_csv('sample.csv', delimiter=',', quotechar='|') 

#you can get the 7th column like this 
df_seven = df[df.columns[7]] 

#Then slice the dataframe as you see fit 
df_seven[0:5] # first five rows 
df_seven[4:9] # rows 4 to 9... etc 
+0

は、パンダがpy3.3で動作しないようです。 –

+0

python3.5で完璧に動作します – JoshuaBox

関連する問題