Sử dụng Python 3.4, Pandas 0.15 và Statsmodels 0.6.0, tôi cố gắng tạo một mosaic plot từ một khung dữ liệu như mô tả trong Statsmodels documentation. Tuy nhiên, tôi chỉ không hiểu cách đầu vào phải được định dạng được cung cấp cho hàm mosaic()
.Làm thế nào để tạo ra cốt truyện khảm từ Pandas dataframe với thư viện Statsmodels?
Cho một dataframe đơn giản:
In:
myDataframe = pd.DataFrame({'size' : ['small', 'large', 'large', 'small', 'large', 'small'], 'length' : ['long', 'short', 'short', 'long', 'long', 'short']})
Out:
length size
0 long small
1 short large
2 short large
3 long small
4 long large
5 short small
Khi cố gắng để tạo ra một âm mưu khảm các dữ liệu này:
from statsmodels.graphics.mosaicplot import mosaic
mosaic(data=myDataframe, title='Mosaic Plot')
cho ValueError: cannot label index with a null key
Như lô khảm là một hình dung của bảng ngẫu nhiên, Trước tiên, tôi đã cố gắng tạo ra điều này với
In:
myCrosstable = pd.crosstab(myDataframe['size'], myDataframe['length'])
Out:
length long short
size
large 1 2
small 2 1
Vẫn còn, sử dụng myCrosstable
làm đối số dữ liệu cho cùng một lỗi.
Làm cách nào để định dạng khung dữ liệu phải được định dạng để được chấp nhận bởi hàm mosaic()
? Các tài liệu nói là lời giải thích cho lập luận dữ liệu: Tham số:
dữ liệu: dict, pandas.Series, np.ndarray, pandas.DataFrame
The contingency table that contains the data. Each category should contain a non-negative number with a tuple as index.
Mà không phải là những gì pd.crosstab
hàm trả về? Nếu không, làm thế nào tôi có thể chuyển đổi dataframe cho phù hợp?