Tamarie:
私は複数のワークブックのExcel spreedsheetを持ち、それぞれのワークブックには、以下の属性があります。
data = pd.DataFrame({
'start date': ['1988/01/12', '1988/01/13', '1988/01/14', '1989/01/20','1990/01/01'],
'end date': ['1989/01/12', '1989/01/12', '1989/01/12', '1990/01/20','1991/01/01'],
'value': [11558522, 12323552, NaN, 18412280, NaN]
})
私は、ブック内の各シートをループにしたいと:
- シート名を取得します(これはまたsheet0のIDです
- 分の日付を取得(そのシートが始まったときに確認してください)
- 最大日付を取得(そのシートが終了したときに確認してください)
- そのシートに欠損値の数をカウントする(値カラムbasesdのみ)
私はiIhaveシート名(ID)は、日付、終了日付と、このような欠損値の数を開始し、要約spreedsheet /データフレームをしたいです:
data = pd.DataFrame({
sheet name': ['sheet 1', 'sheet 2', 'sheet 3', 'sheet 4','sheet5'],
'start date': ['1988/01/12', '1988/01/13', '1988/01/14', '1989/01/20','1990/01/01'],
'end date': ['1989/01/12', '1989/01/12', '1989/01/12', '1990/01/20','1991/01/01'],
'missing values': [3, 10, 1, 43, 8]
})
エズレル:
使用sheet_name
中のread_excel
日付時刻にデータフレーム、変換列のorderdictへのすべてのシートのためとは、最小と最大取得し、でmisisng値の数をカウントするsum
ことで作成されたマスクのSeries.isna
リストに、最後に追記し、最後の新しい作成するDataFrame
コンストラクタによって:
L = []
for s, df in pd.read_excel('test.xlsx', sheet_name=None).items():
d = {'sheet name': s,
'start date': pd.to_datetime(df['start date']).min(),
'end date': pd.to_datetime(df['end date']).max(),
'missing values':df['value'].isna().sum()}
L.append(d)
df1 = pd.DataFrame(L)