2016-09-12 5 views
0

私はExcelを使用していて、私に知られていない行を継続的に追加または減算する人々と協力しています。私はデータのために文書を掻き集めなければならず、ヘッダーが見つかる行は気分に基づいて変化します。pandasは行ではなく値に基づいてヘッダを暗黙的に決定できますか?

私の挑戦は、ヘッダーの位置を検出することによってこれらの振動電流を処理することです。

まず、xlrdと、ブックの値を使用していくつかの条件文を使用してスクラップを整理しました。

私の最初の試みの作品やスライス長い(ので、私はそれを公開しません)が、シート全体に持ち込む必要はなく、次のとおりです。

from xlrd import open_workbook 

book = open_workbook(fName) 
sheet = book.sheet_by_name(sht) 

return book,sheet 

しかし、それは大きいと私が得ることを好むだろうよりターゲットを絞った選択。ヘッダー値は決して変更されず、この行の後にデータが表示されるときも変わりません。

pandas.ExcelFileまたはpandas.read_excelのいずれかを使用して、シートの検索された値に基づいてヘッダーを暗黙的に取得する方法を知っていますか?ここで

pandas.ExcelFileと私の試みです:

import pandas as pd 

xlsx = pd.ExcelFile(fName) 
dataFrame = pd.read_excel(xlsx, sht, 
          parse_cols=21, merge_cells=noMerge, 
          header=header) 

return dataFrame 

私はコール私は避けるように願っています正確に何である正しいヘッダ値を与えない限り、私は動作するようにコードを取得することはできません。

このprevious questionは、ヘッダーを暗黙的に検索する懸念に対処することなく、同様の問題を引き起こすようです。

+0

は、なぜあなたは、シートの最初の行をループし、解析しませんか? 'skip_rows'に渡す行数を与えます。そして、あなたはいつものようにテーブルを解析するパンダを持っています。 – Boud

+0

何を使ってループして解析するのですか?それは私のxlrdのコードは何ですか、私はこの騒々しい外観をどのようにはっきりしていません – double0darbo

+0

以下の答えを参照してください – Boud

答えて

0

はExcelFileのオブジェクトを通して同じループを実行してください:あなたはヘッダがある行を見つけるまで

xlsx = pd.ExcelFile(fName) 
sheet = xlsx.sheet_by_name(sht) 
# apply the same algorithm you wrote against xlrd here 
# ... results in having header_row = something, 0 based 
dataFrame = pd.read_excel(xlsx, sht, 
         parse_cols=21, merge_cells=noMerge, 
         skip_rows=header_row) 
関連する問題