Tôi đang gặp khó khăn với các chỉ mục phân cấp trong gói Python pandas
. Cụ thể là tôi không hiểu cách lọc và so sánh dữ liệu trong các hàng sau khi nó đã được xoay vòng.Lọc và chọn từ các bảng tổng hợp được làm bằng gấu trúc trăn
Dưới đây là bảng ví dụ từ các tài liệu:
import pandas as pd
import numpy as np
In [1027]: df = pd.DataFrame({'A' : ['one', 'one', 'two', 'three'] * 6,
'B' : ['A', 'B', 'C'] * 8,
'C' : ['foo', 'foo', 'foo', 'bar', 'bar', 'bar'] * 4,
'D' : np.random.randn(24),
'E' : np.random.randn(24)})
In [1029]: pd.pivot_table(df, values='D', rows=['A', 'B'], cols=['C'])
Out[1029]:
C bar foo
A B
one A -1.154627 -0.243234
B -1.320253 -0.633158
C 1.188862 0.377300
three A -1.327977 NaN
B NaN -0.079051
C -0.832506 NaN
two A NaN -0.128534
B 0.835120 NaN
C NaN 0.838040
Tôi muốn phân tích như sau:
1) Lọc bảng này trên cột thuộc tính, ví dụ chọn hàng với tiêu cực 'foo' :
C bar foo
A B
one A -1.154627 -0.243234
B -1.320253 -0.633158
three B NaN -0.079051
two A NaN -0.128534
2) So sánh các giá trị chuỗi B còn lại giữa các nhóm A khác nhau? Tôi không chắc cách truy cập thông tin này: {'one': ['A', 'B'], 'two': ['A'], 'ba': ['B']} và xác định chuỗi video nào Giá trị B là duy nhất cho mỗi khóa hoặc được thấy trong nhiều nhóm chính, v.v.
Có cách nào để thực hiện điều này trực tiếp trong cấu trúc bảng xoay vòng hay tôi cần chuyển đổi lại thành khung dữ liệu gấu trúc?
Cảm ơn bạn
chỉnh sửa: Tôi nghĩ rằng mã này là một bước đi đúng hướng. Nó ít nhất cho phép tôi tiếp cận các giá trị cá nhân trong bảng này, nhưng tôi vẫn còn cứng mã hóa thung lũng series:
table = pivot_table(df, values='D', rows=['A', 'B'], cols=['C'])
table.ix['one', 'A']
Cảm ơn phản hồi của bạn. Có cách nào để lấy danh sách các giá trị trong cột bảng tổng hợp bằng cách chỉ định tiêu đề không? Tôi có thể làm điều này trên dataframe với 'df [' A ']. Giá trị' nhưng tôi đang cố gắng để có được một cái gì đó tương tự từ bảng pivot – alexhli
kết quả của bảng tổng hợp là một DataFrame. Vì vậy, bạn có thể đơn giản làm 'pivoted.bar.values' –
điều khiến tôi khó hiểu là khi tôi thử' pivoted.dtypes' tôi thấy thông tin trên cột C, nhưng tôi muốn xem xét các cột A và B. Tôi đã hy vọng có một cách dễ dàng để có được tập giá trị B cho mỗi giá trị A như '{'một': ['A', 'B'], 'hai': ['A'], 'ba': ['B']} 'nhưng tôi không thấy bất cứ điều gì giống như vậy trong tài liệu gấu trúc – alexhli