df
にはn
columns
が含まれています。これらのうちの1つはという名前のdate
で、値はmm-dd-yy
となっています。今度はdf
にcolumn
interval
を追加します。このcolumn
は、date
に含まれるyear
を返しますが、H1
またはH2
の場合にも返されます。 H1
は半年であり、01-dd-yy
06-dd-yy
の間の値はすべてdate
であり、したがってH2
は、07-dd-yy
と12-dd-yy
の間の値である必要があります。日付の列範囲に基づいてデータフレームに列を追加する
これはdf['date']
のデータの例です。だから私は、私はfunction
を作成しようと思いました
0 16H1
1 16H1
2 16H1
3 16H1
4 16H1
5 16H1
6 16H2
7 16H2
8 16H2
9 15H2
...etc...
と:私は含むinterval
をという名前の別の列を追加したい
df
で
0 01-27-16
1 02-27-16
2 03-27-16
3 04-27-16
4 05-27-16
5 06-27-16
6 07-27-16
7 08-24-16
8 09-24-16
9 10-16-15
...etc...
map
を使用します。
def is_in_range(x):
if x['date'] >= '01-01-16' x['date'] <= '06-31-16':
print '16H1'
elif x['date'] >= '07-01-16' and x['date'] <= '12-31-16':
print '16H2'
elif x['date'] >= '01-01-15' and x['date'] <= '06-31-15':
print '15H1'
elif x['date'] >= '07-01-15' and x['date'] <= '12-31-15':
print '15H2'
...etc...
私はこのような関数を呼び出す:
df.groupby(df['date'].map(is_in_range))
は今、これは私に与える:そもそも
`TypeError: 'Timestamp' object has no attribute 'getitem'
を。なぜ私は確信していませんが、いずれにしても確実に良い方法でなければなりませんか?