У меня есть следующий кадр данных:Преобразовать поплавок Series в целое Series в панд
In [31]: rise_p
Out[31]:
time magnitude
0 1379945444 156.627598
1 1379945447 1474.648726
2 1379945448 1477.448999
3 1379945449 1474.886202
4 1379945699 1371.454224
Теперь я хочу, чтобы сгруппировать строки, которые находятся в пределах одной минуты. Поэтому я разделить временный ряд с 100. Я получаю это:
In [32]: rise_p/100
Out[32]:
time magnitude
0 13799454.44 1.566276
1 13799454.47 14.746487
2 13799454.48 14.774490
3 13799454.49 14.748862
4 13799456.99 13.714542
Как объяснялось выше, я хочу, чтобы создать группы в зависимости от времени. Таким образом, ожидаемыми подгруппами будут строки со временем 13799454
и 13799456
. Я делаю это:
In [37]: ts = rise_p['time']/100
In [38]: s = rise_p/100
In [39]: new_re_df = [s.iloc[np.where(int(ts) == int(i))] for i in ts]
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-39-5ea498cf32b2> in <module>()
----> 1 new_re_df = [s.iloc[np.where(int(ts) == int(i))] for i in ts]
TypeError: only length-1 arrays can be converted to Python scalars
Как преобразовать ts
в серии Integer, так как Int() не принимает серии или список в качестве аргумента? Есть ли какой-нибудь метод в пандах, который это делает?
Использование 'astype()' определенно правильный, но избежать понимания списка все вместе было бы еще лучше. Подобно 'ts ['time'] = (ts.time/100) .astype ('int')', а затем группируется с 'ts.grouby ('time')' и т. Д. –
Да, согласился, избегая список будет гораздо приятнее, отредактируйте мой ответ, чтобы отразить. – drexiya