私は 24 時間の期間に配置されたデータセットを持っており、1 時間の期間がスキップされる可能性がある状況に対処できるデータクリーニングシステムを作成しようとしています (たとえば、このように行が欠落していない午前 4 時から午後 3 時までとします:)
DET_SCN DATE HOUR MINUTE COUNT OCCUPANCY DET_FAULT CC_FAULT SUB_STAT
D11136 07/01/2014 0 0 0 0 FALSE TRUE FALSE
D11136 07/01/2014 1 0 0 0 FALSE TRUE FALSE
D11136 07/01/2014 2 0 0 0 FALSE TRUE FALSE
D11136 07/01/2014 3 0 0 0 FALSE TRUE FALSE
D11136 07/01/2014 4 0 0 0 FALSE TRUE FALSE
D11136 07/01/2014 15 0 0 0 FALSE TRUE FALSE
D11136 07/01/2014 16 0 0 0 FALSE TRUE FALSE
D11136 07/01/2014 17 0 0 0 FALSE TRUE FALSE
D11136 07/01/2014 18 0 0 0 FALSE TRUE FALSE
D11136 07/01/2014 19 0 0 0 FALSE TRUE FALSE
D11136 07/01/2014 20 0 0 0 FALSE TRUE FALSE
D11136 07/01/2014 21 0 0 0 FALSE TRUE FALSE
D11136 07/01/2014 22 0 0 0 FALSE TRUE FALSE
D11136 07/01/2014 23 0 0 0 FALSE TRUE FALSE
データセットが不足している行を NaN で挿入して埋めるようにしたいこれまでのところ、データを読み込んだ後、試しました
dataIn = pd.read_csv(filename, delimiter=',')
frame = DataFrame(dataIn)
print "Cleaning %s " % filename
siteRef = frame['DET_SCN'].str.extract('(D\d{4})').apply(Series,1).stack()
armRef = frame['DET_SCN'].str.extract('(\d{1}$)').apply(Series,1).stack()
armRef.index = armRef.index.droplevel(-1)
siteRef.index = siteRef.index.droplevel(-1)
#append column names
siteRef.name= 'SITE_REF'
armRef.name = 'ARM_REF'
print "printing siteRef"
print siteRef
print "printing armRef"
print armRef
#frame.join(siteRef,armRef columns['SITE_REF','ARM_REF'])
cleanframe = pd.concat([siteRef,armRef,frame], axis=1)
cleanframe.set_index('HOUR').reindex_axis([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23],axis=1).head()
cleanframe.HOUR = cleanframe.HOUR.interpolate('linear')
しかし、それは私にとってはうまくいきませんでした。何が間違っているのかわかりません。stackoverflow で他の回答を見てみましたが、回答が見つかりませんでした。
助けてくれてありがとう。
編集:クリーンフレームヘッドはこのようになります
0 CC_FAULT COUNT DATE DET_FAULT DET_SCN HOUR MINUTE OCCUPANCY \
0 D1113 NaN NaN NaN NaN NaN NaN NaN NaN
1 D1113 NaN NaN NaN NaN NaN NaN NaN NaN
2 D1113 NaN NaN NaN NaN NaN NaN NaN NaN
3 D1113 NaN NaN NaN NaN NaN NaN NaN NaN
4 D1113 NaN NaN NaN NaN NaN NaN NaN NaN
SUB_STAT
0 NaN
1 NaN
2 NaN
3 NaN
4 NaN
そしてクリーンフレーム情報
<class 'pandas.core.frame.DataFrame'>
Int64Index: 37227 entries, 0 to 12408
Data columns (total 10 columns):
0 24818 non-null object
CC_FAULT 12409 non-null object
COUNT 12409 non-null float64
DATE 12409 non-null object
DET_FAULT 12409 non-null object
DET_SCN 12409 non-null object
HOUR 12409 non-null float64
MINUTE 12409 non-null float64
OCCUPANCY 12409 non-null float64
SUB_STAT 12409 non-null object
dtypes: float64(4), object(6)None