Tôi có khung dữ liệu sau.Pandas: Sự khác biệt giữa pivot và pivot_table. Tại sao chỉ pivot_table hoạt động?
df.head(30)
struct_id resNum score_type_name score_value
0 4294967297 1 omega 0.064840
1 4294967297 1 fa_dun 2.185618
2 4294967297 1 fa_dun_dev 0.000027
3 4294967297 1 fa_dun_semi 2.185591
4 4294967297 1 ref -1.191180
5 4294967297 2 rama -0.795161
6 4294967297 2 omega 0.222345
7 4294967297 2 fa_dun 1.378923
8 4294967297 2 fa_dun_dev 0.028560
9 4294967297 2 fa_dun_rot 1.350362
10 4294967297 2 p_aa_pp -0.442467
11 4294967297 2 ref 0.249477
12 4294967297 3 rama 0.267443
13 4294967297 3 omega 0.005106
14 4294967297 3 fa_dun 0.020352
15 4294967297 3 fa_dun_dev 0.025507
16 4294967297 3 fa_dun_rot -0.005156
17 4294967297 3 p_aa_pp -0.096847
18 4294967297 3 ref 0.979644
19 4294967297 4 rama -1.403292
20 4294967297 4 omega 0.212160
21 4294967297 4 fa_dun 4.218029
22 4294967297 4 fa_dun_dev 0.003712
23 4294967297 4 fa_dun_semi 4.214317
24 4294967297 4 p_aa_pp -0.462765
25 4294967297 4 ref -1.960940
26 4294967297 5 rama -0.600053
27 4294967297 5 omega 0.061867
28 4294967297 5 fa_dun 3.663050
29 4294967297 5 fa_dun_dev 0.004953
Theo tài liệu xoay vòng, tôi sẽ có thể định hình lại điều này trên score_type_name bằng cách sử dụng chức năng xoay vòng.
df.pivot(columns='score_type_name',values='score_value',index=['struct_id','resNum'])
Nhưng, tôi hiểu như sau.
Tuy nhiên, chức năng pivot_table dường như làm việc:
pivoted = df.pivot_table(columns='score_type_name',
values='score_value',
index=['struct_id','resNum'])
Nhưng nó không thích hợp, đối với tôi ít nhất, để phân tích thêm. Tôi muốn nó chỉ có struct_id, resNum và score_type_name làm cột thay vì xếp score_type_name ở đầu các cột khác. Ngoài ra, tôi muốn struct_id được cho mỗi hàng, và không tổng hợp trong một hàng gia nhập như nó cho bảng.
Vì vậy, bất kỳ ai cũng có thể cho tôi biết cách tôi có thể nhận được một Biểu dữ liệu đẹp như tôi muốn sử dụng trục xoay? Ngoài ra, từ tài liệu, tôi không thể biết tại sao pivot_table hoạt động và trục không. Nếu tôi nhìn vào ví dụ đầu tiên của trục, nó trông giống như những gì tôi cần.
P.S. Tôi đã đăng một câu hỏi liên quan đến vấn đề này, nhưng tôi đã làm một công việc nghèo như vậy chứng tỏ đầu ra, tôi đã xóa nó và thử lại bằng cách sử dụng sổ ghi chép ipython. Tôi xin lỗi trước nếu bạn thấy điều này hai lần.
Here is the notebook for your full reference
EDIT - kết quả của tôi mong muốn sẽ giống như thế này (thực hiện trong excel):
StructId resNum pdb_residue_number chain_id name3 fa_dun fa_dun_dev fa_dun_rot fa_dun_semi omega p_aa_pp rama ref
4294967297 1 99 A ASN 2.1856 0.0000 2.1856 0.0648 -1.1912
4294967297 2 100 A MET 1.3789 0.0286 1.3504 0.2223 -0.4425 -0.7952 0.2495
4294967297 3 101 A VAL 0.0204 0.0255 -0.0052 0.0051 -0.0968 0.2674 0.9796
4294967297 4 102 A GLU 4.2180 0.0037 4.2143 0.2122 -0.4628 -1.4033 -1.9609
4294967297 5 103 A GLN 3.6630 0.0050 3.6581 0.0619 -0.2759 -0.6001 -1.5172
4294967297 6 104 A MET 1.5175 0.2206 1.2968 0.0504 -0.3758 -0.7419 0.2495
4294967297 7 105 A HIS 3.6987 0.0184 3.6804 0.0547 0.4019 -0.1489 0.3883
4294967297 8 106 A THR 0.1048 0.0134 0.0914 0.0003 -0.7963 -0.4033 0.2013
4294967297 9 107 A ASP 2.3626 0.0005 2.3620 0.0521 0.1955 -0.3499 -1.6300
4294967297 10 108 A ILE 1.8447 0.0270 1.8176 0.0971 0.1676 -0.4071 1.0806
4294967297 11 109 A ILE 0.1276 0.0092 0.1183 0.0208 -0.4026 -0.0075 1.0806
4294967297 12 110 A SER 0.2921 0.0342 0.2578 0.0342 -0.2426 -1.3930 0.1654
4294967297 13 111 A LEU 0.6483 0.0019 0.6464 0.0845 -0.3565 -0.2356 0.7611
4294967297 14 112 A TRP 2.5965 0.1507 2.4457 0.5143 -0.1370 -0.5373 1.2341
4294967297 15 113 A ASP 2.6448 0.1593 0.0510 -0.5011
Không chắc, nhưng tôi nghĩ rằng 'pivot' v' pivot_table' vấn đề có thể có để làm với mục index không duy nhất.. – tegancp
Tôi chạy vào một vấn đề tương tự và, trong ngắn hạn, tôi cuối cùng nhận ra có quá nhiều mục nan trong cột tôi muốn sử dụng làm chỉ mục. Để xây dựng, tôi lặp lại thông qua khung dữ liệu của tôi cho tính duy nhất, nhưng nó bỏ qua các mục nan để vấn đề bay ngay dưới radar của tôi. – timctran
Tôi đã viết tiêu chuẩn này có thể hữu ích. https://stackoverflow.com/q/47152691/2336654 – piRSquared