2016-04-08 16 views
0

Pandasを使用してPythonでWebログテキストファイルをインポートしています。 Pythonはヘッダーを読み込んでいますが、ヘッダーとして "Fields:"というテキストを使用し、最後に空白(NaN)の列を追加しています。このテキストを列見出しとして使用しないようにするにはどうすればよいですか?ここPythonを使用してテキストを列見出しとしてスキップする方法

は私のコードです:ここでは

arr = pd.read_table("path", skiprows=3, delim_whitespace=True,  na_values=True) 

は、ファイルの先頭である:

ソフトウェア:Microsoftインターネットインフォメーションサービス7.5

バージョン:1.0

日:2014- 08-01 00:00:25

フィールド:日付時刻

2014年8月1日午前〇時00分25秒...

結果は、「フィールド」は、列見出しとして使用されているとNaN値の完全な列が列「時間」のために作成されていることです。

答えて

1

あなたは二回read_tableを呼び出し、それを行うことができますしたいかもしれないと思います。

# reads the forth line into 1x1 df being a string, 
# then splits it and skips the first field: 
col_names = pd.read_table('path', skiprows=3, nrows=1, header=None).iloc[0,0].split()[1:] 
# reads the actual data: 
df = pd.read_table('path', sep=' ', skiprows=4, names=col_names) 

あなたはすでにそれはさらに簡単です(例えばdatetime。)列の名前を知っている場合:

df = pd.read_table('path', sep=' ', skiprows=4, names = ['date', 'time']) 
1

私はあなたがskiprows = 4header = None

+0

おかげで、私は回避策としてということでしたし、戻って使用して列見出しを追加しましたこのqanda:http://stackoverflow.com/questions/17018638/assigning-column-names-from-a-list-to-a-table間違ったテキストを読ませるのではなく、確かに良い方法があります。 – W4K1NG

+0

ああ、私はあなたの質問を理解していませんでした。ファイルを編集して '' Fields: ''を' '''に置き換えるだけです(これはpythonスクリプトで 'replace'を使って行うことができます) – maxymoo

関連する問題