Giả sử nguồn dữ liệu của bạn trong một tập tin csv,
from pandas.io.parsers import read_csv
df = read_csv("radar_data.csv")
df # shows what is in df
loc speed time
0 A 63 0
1 B 61 0
2 C 63 0
3 D 65 0
4 A 73 5
5 B 73 5
6 C 75 5
7 D 75 5
8 A 67 0
9 B 68 0
10 C 68 0
11 D 70 0
Lưu ý rằng tôi đã không được thiết lập loc
như chỉ số chưa nên nó sử dụng một chỉ số autoincrement số nguyên.
panel = df.set_index(['loc', 'time']).sortlevel(0).to_panel()
Tuy nhiên, nếu khung dữ liệu của bạn đã được sử dụng loc
như chỉ số, chúng tôi sẽ cần phải thêm cột time
vào nó để chúng ta có một loc thời gian chỉ số thứ bậc. Bạn có thể thực hiện việc này bằng cách sử dụng tùy chọn append
mới trong phương thức set_index
. Như thế này: -
panel = df.set_index(['time'], append=True).sortlevel(0).to_panel()
Trong cả hai trường hợp, chúng ta nên đến kịch bản này: -
panel # shows what panel is
<class 'pandas.core.panel.Panel'>
Dimensions: 1 (items) x 4 (major) x 2 (minor)
Items: speed to speed
Major axis: A to D
Minor axis: 0 to 5
panel["speed"] # <--- This is what you are looking for.
time 0 5
loc
A 63 67
B 73 61
C 68 73
D 63 68
Hope this helps.
Nguồn
2012-11-04 05:24:25
ah ... lừa tốt. Cảm ơn! –
Tôi nhận được kết quả của "ReshapeError: Chỉ mục chứa các mục trùng lặp, không thể định lại hình ảnh". Một số vị trí của tôi là các chuỗi có dấu cách trong đó, có thể liên quan đến không? –
Ye. Không làm việc cho tôi. Tôi nhận được 'ReshapeError: Chỉ mục chứa các mục trùng lặp, không thể định lại hình ảnh'. –