Tôi có khung dữ liệu sau:Chuyển đổi thành một dòng số nguyên trong gấu trúc
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
Bây giờ, tôi muốn hàng nhóm đó là trong vòng một phút. Vì vậy, tôi chia chuỗi thời gian với 100. Tôi nhận được điều này:
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
Như đã giải thích ở trên, tôi muốn tạo nhóm dựa trên thời gian. Vì vậy, các nhóm con được mong đợi sẽ là các hàng có số lần 13799454
và 13799456
. Tôi làm điều này:
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
Làm thế nào để chuyển đổi ts
thành một Integer Dòng từ int() không có một dòng hoặc một danh sách như một cuộc tranh cãi? Có phương pháp nào trong gấu trúc thực hiện điều này không?
Sử dụng 'astype()' là chắc chắn đúng, nhưng tránh việc hiểu danh sách tất cả cùng nhau sẽ tốt hơn. Giống như 'ts ['time'] = (ts.time/100) .astype ('int')' và sau đó nhóm lại với 'ts.grouby ('time')' và cứ thế ... –
Có thỏa thuận, tránh việc hiểu danh sách sẽ đẹp hơn nhiều, sẽ chỉnh sửa câu trả lời của tôi để phản ánh. – drexiya