-2

csvファイルがあり、そこから特定の列を抽出したいと思います。どうやってやるの?
次のような見出しとセルの場所の辞書があります。

dict = {'Col1' : [(4,5)], 'Col2' : [(4,7)], 'Col3' : [(4,9)]}

dictの値からcsvファイルの最後までデータを抽出したいです!

例えば:

,,,,,,,,,,
,,,,,,,,,,
,,,,,,,,,,
,,,Col0,Col1,,Col2,,Col3,Col4,
,,,bgr,abc,,efg,,hij,123,
,,,cde,klm,,nop,,qrs,123,
,,,asd,tuv,,wxy,,zzz,456,
,,,,,,,,,,
,,,,,,,,,,

抽出したい

Col1,Col2,Col3
abc,efg,hij
klm,nop,qrs
tuv,wxy,zzz

新しいcsvファイルに書き込んでください!私がこれをするのを手伝ってください!
この状況を効率的に処理したい!

4

1 に答える 1

1

Pandasは、 csv ファイルを読み取るための強力な方法を備えたライブラリです。

同じ行から各列を読み取りたい場合は、次のスクリプトが機能します (2 つの python 行だけが有用であることに注意してください)。

import pandas as pd


# Give the name of the columns
colnames = ('skip1', 'skip2', 'skip3', 'Col0','Col1','skip4','Col2','skip5','Col3','Col4','skip6')
# Give the number of lines to skip
nbskip=4
# Give the number of rows to read (you can also filter rows after reading and remove the empty ones)
nrows=3
#List of columns to keep
keep_only = ('Col1','Col2','Col3')

#Read the csv
df =  pd.io.parsers.read_csv('test.csv', 
                 header=None,
                 skiprows=nbskip,
                 names=colnames,
                 nrows=nrows, # Remove if you prefer filter rows
                 usecols=keep_only)

# If the number of lines to keep is unknow,
# you can remove empty lines here

#Save the csv
df.to_csv('result.csv', index=False)
于 2013-02-26T07:59:00.737 に答える