2017-06-13 1 views
-3

import openpyxl wb=openpyxl.load_workbook('Book_1.xlsx') ws=wb['Sheet_1'](openpyxlを使用して)E​​xcelのスプレッドシートをループ

私はopenpyxlを使用してExcelスプレッドシートを分析しようとしています。私の目標は、列Aの各数値グループの列Dから最大数を取得することです。分析のためにループするコードを取得するのに役立つと思います。ここでは、分析しようとしているスプレッドシートの例を示します。ファイル名はBook 1、シート名はSheet 1です。Python 3.6.1、pandas 0.20.1、openpyxl 2.4.7を実行しています。私はこれまでのコードを提供しています。

enter image description here

+0

あなたが試したコードの一部を提供し、これについて質問する必要があります。 –

答えて

1

IIUC、これを達成するためにpandasモジュールを使用します。

import pandas as pd 
df = pd.read_excel('yourfile.xlsx') 
maxdf = df.groupby('ID').max() 

maxdfは、あなたが探している結果を持っています。

+0

' id 'と特定の列のみを表示する方法は?私があなたが提供したコードを実行すると、 'id'の数字はすべての列に対して最大値を示します。 –

+0

このリンクは 'https:// pandas.pydata.org/pandas-docs/stable/10min.html'です – Abbas

0

のは、ワークシートws1でファイルtest.xlsxがあるとしましょう。試してみてください:

from openpyxl import load_workbook 
wb = load_workbook(filename='test.xlsx') 
ws = wb['ws1'] 

for col in ws.columns: 
    col_max = 0 
    for cell in col: 
     if cell.value > col_max: 
      col_max = cell.value 
    print('next max:', col_max) 

私はあなたが何を期待しているか分からないため、すべての行をループしています。

+0

あなたが作成したコードを実行しました。しかし、私は必要な最大値を得ていません。私は1,2,3の最大値を取得しようとしています...別の列に。次に、コードを実行した結果、エラーメッセージが表示されます。私は自分の質問を更新し、それに基づいて再び助けてもらいたいと思っています。私が提供しているコードの結果。 –

+0

次の最大:1つの 次の最大:2 次の最大:3 次の最大:4 次の最大:5 トレースバック(最新の呼び出しの最後): ファイル ""、ライン1、 runfile( 'C:/Users/hmersiov/untitled1.py'、wdir = 'C:/ Users/hmersiov') –

+0

ファイル "C:¥Users¥hmersiov¥AppData¥Local¥Continuum¥Anaconda3¥libファイル名がC:¥Users¥hmersiov¥AppData¥Local¥Continuum¥Anaconda3¥lib¥siteにあります。このファイルは、次の場所にあります。 -packages \ spyder \ utils \ site \ sitecustomize.py "、行102、execfile exec(コンパイル(f.read()、ファイル名、 'EXEC')、名前空間) ファイル: における "C /Users/hmersiov/untitled1.py"、21行、もしcell.value> col_max: 例外TypeError: " > '' NoneType 'と' int 'のインスタンス間ではサポートされていません –

関連する問題