1 つのプログラムで同時に複数の操作を実行しようとしています。開始と終了の手がかりがないデータフレームがありDates
、見つけたい:
- データセットの合計日数
- 総時間数
- 伯爵の中央値
- 日/日付ごとの中央値の個別の出力を書き込みます。
- 可能であれば、最も単純な方法で中央値の中央値。
入力: GB サイズの大きなファイルから数行
2004-01-05,16:00:00,17:00:00,Mon,10766,656
2004-01-05,17:00:00,18:00:00,Mon,12223,670
2004-01-05,18:00:00,19:00:00,Mon,12646,710
2004-01-05,19:00:00,20:00:00,Mon,19269,778
2004-01-05,20:00:00,21:00:00,Mon,20504,792
2004-01-05,21:00:00,22:00:00,Mon,16553,783
2004-01-05,22:00:00,23:00:00,Mon,18944,790
2004-01-05,23:00:00,00:00:00,Mon,17534,750
2004-01-06,00:00:00,01:00:00,Tue,17262,747
2004-01-06,01:00:00,02:00:00,Tue,19072,777
2004-01-06,02:00:00,03:00:00,Tue,18275,785
2004-01-06,03:00:00,04:00:00,Tue,13589,757
2004-01-06,04:00:00,05:00:00,Tue,16053,735
開始日と終了日は不明です。
編集: 期待される出力:1には結果が1行しかありません
days,hours,median,median-of-median
2,17262,13,17398
median
Median-of-Median は、出力 2 の列の中央値です。
期待される出力:2、中央値の中央値を見つけるために使用されるすべての日付の中央値が含まれます
date,median
2004-01-05,17534
2004-01-06,17262
コード:
import pandas as pd
from datetime import datetime
df = pd.read_csv('one_hour.csv')
df.columns = ['date', 'startTime', 'endTime', 'day', 'count', 'unique']
date_count = df.count(['date'])
all_median = df.median(['count'])
all_hours = df.count(['startTime'])
med_med = df.groupby(['date','count']).median()
print date_count
print all_median
print all_hours
stats = ['date_count', 'all_median', 'all_hours', 'median-of-median']
stats.to_csv('stats_all.csv', index=False)
med_med.to_csv('med_day.csv', index=False, header=False)
明らかに、コードは想定どおりの結果を提供しません。
エラーを以下に示します。
エラー:
Traceback (most recent call last):
File "day_median.py", line 8, in <module>
all_median = df.median(['count'])
File "/usr/local/lib/python2.7/dist-packages/pandas/core/generic.py", line 5310, in stat_func
numeric_only=numeric_only)
File "/usr/local/lib/python2.7/dist-packages/pandas/core/frame.py", line 4760, in _reduce
axis = self._get_axis_number(axis)
File "/usr/local/lib/python2.7/dist-packages/pandas/core/generic.py", line 308, in _get_axis_number
axis = self._AXIS_ALIASES.get(axis, axis)
TypeError: unhashable type: 'list'