2

ファイル全体を読み取る代わりにcsvファイルを読み取ることができますが、特定の行と列のみを印刷するにはどうすればよいですか?

これが Excel であるかのように想像してください。

  A              B              C                  D                    E
State  |Heart Disease Rate| Stroke Death Rate | HIV Diagnosis Rate |Teen Birth Rate

Alabama     235.5             54.5                 16.7                 18.01

Alaska      147.9             44.3                  3.2                  N/A    

Arizona     152.5             32.7                 11.9                  N/A    

Arkansas    221.8             57.4                 10.2                  N/A    

California  177.9             42.2                  N/A                  N/A    

Colorado    145.3             39                    8.4                 9.25    

私が持っているものは次のとおりです。

import csv

try:
    risk = open('riskfactors.csv', 'r', encoding="windows-1252").read() #find the file

except:
    while risk != "riskfactors.csv":  # if the file cant be found if there is an error
    print("Could not open", risk, "file")
    risk = input("\nPlease try to open file again: ")
else:
    with open("riskfactors.csv") as f:
        reader = csv.reader(f, delimiter=' ', quotechar='|')

        data = []
        for row in reader:# Number of rows including the death rates 
            for col in (2,4): # The columns I want read   B and D
                data.append(row)
                data.append(col)
        for item in data:
            print(item) #print the rows and columns

次のように読み取るには、すべての統計で列 B と D のみを読み取る必要があります。

  A              B                D                    
 State  |Heart Disease Rate| HIV Diagnosis Rate |

 Alabama       235.5             16.7                

  Alaska       147.9             3.2                     

  Arizona      152.5             11.9                     

  Arkansas     221.8             10.2                    

 California    177.9             N/A                     

 Colorado      145.3             8.4                

編集済み

エラーなし

これに取り組む方法についてのアイデアはありますか?私が試したことはすべてうまくいきません。どんな助けやアドバイスも大歓迎です。

4

3 に答える 3

11

データ分析用のパンダについて聞いたことがあると思います。

次のコードは列を読み取るための仕事をしますが、行を読み取ることについては、さらに説明する必要があるかもしれません。

import pandas
io = pandas.read_csv('test.csv',sep=",",usecols=(1,2,4)) # To read 1st,2nd and 4th columns
print io 
于 2013-03-08T05:42:46.000 に答える
3

それでも問題が解決しない場合は、CSVモジュールでファイルを読み取る必要はありません。すべてのCSVファイルはカンマ区切りの文字列であるためです。だから、簡単なことのためにあなたはこれを試すことができます、それはあなたに形のタプルのリストを与えるでしょう(状態、心臓病率、HIV診断率)

output = []

f = open( 'riskfactors.csv', 'rU' ) #open the file in read universal mode
for line in f:
    cells = line.split( "," )
    output.append( ( cells[ 0 ], cells[ 1 ], cells[ 3 ] ) ) #since we want the first, second and third column

f.close()

print output

何らかのデータ分析を行う場合は、ヘッダー行を調べて無視する必要があることに注意してください。

于 2013-03-08T16:03:25.237 に答える
2

これを試して

data = []
for row in reader:# Number of rows including the death rates
    data.append([row[1],row[3]) # The columns I want read  B and D
for item in data
            print(item) #print the rows and columns
于 2013-03-08T04:24:36.797 に答える