0

みなさん、こんにちは。Python2.7.3を使用していて、各カテゴリの下にデータが出力される出力リストを構成しようとしています。

私のデータは次のとおりです。

('State', 'Heart Disease Death Rate (2007)', 'Motor Vehicle Death Rate (2009)', 'Teen Birth Rate (2009)', 'Adult Smoking (2010)', 'Adult Obesity (2010)')

('Alabama', '235.5', '18.01', '50.7', '21.90%', '33.00%')
('Alaska', '147.9', '9.16', '44.5', '20.40%', '25.20%')
('Arizona', '152.5', '12.24', '50.6', '13.50%', '24.70%')
('Arkansas', '221.8', '20.25', '59.3', '22.90%', '30.90%')
('California', '177.9', '8.34', '36.6', '12.10%', '24.70%')

私は次のように読むためにリストが必要です:

 'State', 'Heart Disease', Vehicle Death Rate', 'Teen Birth Rate', 'Adult Smoking , 'Adult Obesity

Alabama'        '235.5',        18.01',             '50.7',          '21.90%',        33.00%' 
Alaska,        '147.9',         '9.16',             '44.5',          '20.40%',        25.20% 
Arizona',      '152.5',         '12.24', '           50.6',          '13.50%',       '24.70%'
Arkansas',      '221.8',        '20.25',            '59.3',          '22.90%',       '30.90%'  

これが私がこれまでに持っているものです:

import csv
import pandas
import string, re

output = []
file1 = []

risk = open('riskfactors.csv', 'r').read() #find the file
reader = csv.reader(risk, delimiter='\t', quotechar='|')


try:
   with open('riskfactors.csv', 'rU') as file1:
    for line in file1:
        cells = line.split(",")
        output.append((cells[0], cells[1], cells[5], cells[7], cells[11], cells[13]))
    for elem in output:
        print(elem)

エラーなし

2.7.3が必要なのは、それが私が使用する唯一の方法だからimport pandasです。

この印刷を正しく行うにはどうすればよいですか?

私はとても近くにいるような気がします、私は何が欠けていますか?任意の提案をいただければ幸いです。

4

1 に答える 1

1

リストを書式設定された文字列として出力するには、string.format 関数を使用できます。これにより、指定した長さになるまで値に空白を埋め込むことができます。

たとえば、あなたがするなら

print "{0:<20}".format( "test" )

これは、空白を追加して 20 文字にするフォーマット文字列です。これを使用して、すべての列が設定された幅である表形式の構造を作成できます。書式文字列が 20 文字を超える場合 (この例では)、切り捨てられないことに注意してください。自分で処理する必要があります (つまり、'心臓病死亡率 (2007)' を '心臓病' に変更します)。

したがって、あなたの例では、次のコードを使用して文字列を表示できます

outstring = ""
for item in output:
    for cell in item:
        outstring += "{0:<20}  ".format( cell ) #change 20 to whatever you want the column width to be
    outstring += "\n"

print outstring
于 2013-03-09T05:28:57.977 に答える