2017-10-03 8 views
1

私は.csvファイルを読み込み、希望の列名のリストであるヘッダーを適用しています。パンダを使用してCSVファイルを読むときにヘッダーを左寄せする

df=pd.read_csv(myfile,names=header) 

.csvファイルは、「ヘッダ」リストの名前よりも多くの列がある場合最初のまたは左の列ヘッダが空白になるように、列名が自動的に右に正当化されます。 DataFrameにヘッダを適用する際に左寄せする方法はありますか?今私がやっていることは、このような回避策として、末尾に空白の列を持つ「ヘッダー」リストをパディングされます。

header = ['col1','col2','col3','','',] 

答えて

2

私はパンダを信じていないが、この機能をサポートしています。しかし、良い回避策は次のようになります:

header = ['col1', 'col2', 'col3'] 

df = pd.read_csv(myfile) 
df.columns = header + [''] * (len(df.columns) - len(header)) 

この方法では、パディングをハードコードする必要がなくなります。

2

指定された列で始まるジェネレータを使用して、無限大に''を生成することができます。これを使用して列の名前を変更します。

はそれを

import pandas as pd 
from itertools import chain, repeat 

csv = """a1,b1,c1,d1 
a2,b2,c2,d2""" 

pd.read_csv(pd.io.common.StringIO(csv), header=None).rename(
    columns=lambda x, c=chain(['a', 'b'], repeat('')): next(c) 
) 

    a b   
0 a1 b1 c1 d1 
1 a2 b2 c2 d2 
を読むために csv内のテキストおよび後続の呼び出しを考えてみましょう
関連する問題