0
私はパンダには新しく、これに問題があります。パンダデータフレームのdatetimeを列に基づいて既存の行に追加します
for (period, group) in df.groupby('period'):
if period == 1:
group['start'] = group['date']
group['end'] = group['date'] + timedelta(hours=8)
if period == 3:
group['start'] = group['date'] + timedelta(hours=8)
group['end'] = group['date'] + timedelta(hours=16)
if period == 5:
group['start'] = group['date'] + timedelta(hours=16)
group['end'] = group['date'] + timedelta(days=1)
:
date period_number start end
0 2016-10-26 1 2016-10-26 00:00 2016-10-26 08:00
1 2016-10-26 3 2016-10-26 08:00 2016-10-26 16:00
2 2016-10-26 5 2016-10-26 16:00 2016-10-27 00:00
3 2016-10-27 1 2016-10-27 00:00 2016-10-27 08:00
私はこのような何かをしようとした:私はこのように、開始時刻と終了時刻を持つ3つの等しい大きさの期間を作成したい
date period_number
0 2016-10-26 1
1 2016-10-26 3
2 2016-10-26 5
3 2016-10-27 1
:私は、単純なテーブルを持っています
エラーが発生します。
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead
はまた、このしかし、明らかに間違っていると、同じエラーを取得しようとした:
df[df['period'] == 1]['end'] = df['date'] + timedelta(hours=8)
おかげで、私はまた、私は実際にちょうど作成することができるようにデータが順番に常にあることに気づきましたfreq = '8H'のdate_rangeをデータフレーム – eggbert
に追加すると簡単になります;) – Skirrebattie