thinh-vu / vnstock

A powerful Python library for getting rich data from the Vietnam Stock Market using just a few lines of code
https://vnstocks.com
Other
499 stars 130 forks source link

Flatten nested columns #134

Closed yellow1912 closed 1 month ago

yellow1912 commented 2 months ago

Với vnstock3, một số reports ví dụ như ratio có dạng columns nested (ví dụ như Meta, ở dưới Meta lại có yearReport)

Để tiện thao tác, theo ý mình là nên flatten hết tất cả columns, từ đó ví dụ như cần index hay gì đó cũng đơn giản hơn rất nhiều.

thinh-vu commented 1 month ago

Chào @yellow1912 Cám ơn bạn đã đóng góp ý kiến. Mục đích thiết kế DataFrame sử dụng multi-level index cho phép tách các bộ chỉ số theo nhóm 1 cách dễ dàng. Nếu bạn không quen hoặc cảm thấy bất tiện với việc sử dụng multi-level index thì có thể loại bỏ phân cấp này với 1 câu lệnh. Việc này được thực hiện dễ dàng thay vì flatten ngay từ đầu vì sẽ không thể tái tạo phân cấp một cách dễ dàng như vậy từ phía người dùng. Bản thân mình cũng cần dạng multi-level index này để dễ dàng chọn các bộ chỉ số theo nhóm và đối chiếu. Bạn có thể tham khảo đoạn code mẫu này nhé.

ratio_df = stock.finance.ratio(period='year', lang='vi').head()
ratio_df.columns = ratio_df.columns.droplevel()

image