2017-10-06 10 views
0

私はリストから新しい値で特定の列を上書きする必要がある.csvファイルを持っています。特定の列に書き込むためにpythonを使用すると、.csvファイル

私は列番号に書きたいL1 = ['La'、 'Lb'、 'Lc']というリストを持っているとしましょう。 .csvファイルの5。

私が実行した場合:

L1 = ['La', 'Lb', 'Lc'] 
import csv 
with open(r'C:\LIST.csv','wb') as f: 
    w = csv.writer(f) 
    for i in L1: 
     w.writerow(i) 

これは、第1および第2の列にL1値を書き込みます。

最初の列には、私は特定の列にそれぞれを書き込むための構文を見つけることができませんでした「L」、「L」、「L」と第二列「」、「B」、「C」

になります要素をリストから削除します。 (これはPython 2.7です)。ご協力ありがとうございました!

(このスクリプトのために、私はIronPythonのを使用しなければならない、とだけIronPythonのが付属してライブラリに建て)

+0

あなたは読み書きを組み合わせることができます。ソースファイルから各行を読み込み、変更をいくつかの列に適用してそれを宛先ファイルに書き出し、最後の名前をdestファイルからソースファイルに書き出します。 – rsm

+0

ありがとうございます。私はそれを行う方法を知っていますが、.csvの特定の列にリストを書き込む方法がわかりません – alc

答えて

0

あなたは確かに、データを読み、それを修正し、それを書くためにPythonの組み込みのcsvモジュールを使用することができますが、優れたtablibモジュールをお勧めします。

from tablib import Dataset 

csv = '''Col1,Col2,Col3,Col4,Col5,Col6,Col7 
a1,b1,c1,d1,e1,f1,g1 
a2,b2,c2,d2,e2,f2,g2 
a3,b3,c3,d3,e3,f3,g3 
''' 

# Read a hard-coded string just for test purposes. 
# In your code, you would use open('...', 'rt').read() to read from a file. 
imported_data = Dataset().load(csv, format='csv') 

L1 = ['La', 'Lb', 'Lc'] 

for i in range(len(L1)): 
    # Each row is a tuple, and tuples don't support assignment. 
    # Convert to a list first so we can modify it. 
    row = list(imported_data[i]) 

    # Put our value in the 5th column (index 4). 
    row[4] = L1[i] 

    # Store the row back into the Dataset. 
    imported_data[i] = row 

# Export to CSV. (Of course, you could write this to a file instead.) 
print imported_data.export('csv') 

# Output: 
# Col1,Col2,Col3,Col4,Col5,Col6,Col7 
# a1,b1,c1,d1,La,f1,g1 
# a2,b2,c2,d2,Lb,f2,g2 
# a3,b3,c3,d3,Lc,f3,g3 
+0

もう一度ありがとうございます。残念ながら、このスクリプトはIronPython上で実行する必要があります。そのため、Python 2.7について言及する理由はIronPythonが2.7(Pandasなどはありません)に似ているためです。 IronPythonではデフォルトのライブラリのみを使用できます。 – alc

+0

'tablib'はIronPythonと何らかの形で互換性がありませんか?または、組み込みのライブラリのみを使用できるのはなぜですか? – smarx

+0

ありがとうございました。このスクリプトは、特定のライブラリをインストールするためのアクセス権を持っていないコンピュータで実行されます(他のカスタマイズも可能です)。だから、私はIronPythonでデフォルトでインストールされているものだけを使う必要があります。 'tablib'はIronPythonのLibフォルダにありません。 – alc

関連する問題