У меня есть df
, содержащий n
columns
. Один из них - column
с именем date
, который содержит значения, отформатированные как mm-dd-yy
. Теперь я хочу добавить column
interval
в мой df
. Это column
должно вернуть year
, содержащееся в date
, но также, если оно H1
или H2
. H1
составляет половину года, и должно быть все date
значений между 01-dd-yy
06-dd-yy
и, следовательно, H2
должно быть все date
значений между 07-dd-yy
и 12-dd-yy
.Добавить столбец в dataframe на основе диапазона столбцов даты
Это пример данных в df['date']
:
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...
В df
я хочу добавить еще один столбец с именем interval
, содержащий:
0 16H1
1 16H1
2 16H1
3 16H1
4 16H1
5 16H1
6 16H2
7 16H2
8 16H2
9 15H2
...etc...
Так я думал, что создать function
и затем используйте 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'
, чтобы начать с. Я не уверен, почему, но в любом случае, безусловно, должен быть лучший способ?