Tôi có khung dữ liệu gấu trúc có cột 'ngày'. Bây giờ tôi cần phải lọc ra tất cả các hàng trong dataframe có ngày bên ngoài của hai tháng tiếp theo. Về cơ bản, tôi chỉ cần giữ lại hàng trong vòng hai tháng tới. Cách tốt nhất để đạt được điều này là gì.lọc các khung dữ liệu gấu trúc vào các ngày
Trả lời
Nếu đó là chỉ mục, bạn nên sử dụng công cụ chọn .ix
hoặc .loc
.
Ví dụ:
df.ix['2014-01-01':'2014-02-01']
Xem chi tiết tại đây http://pandas.pydata.org/pandas-docs/stable/dsintro.html#indexing-selection
Tôi đoán đó là thông minh để đọc lên trên gấu trúc khá rộng rãi trước khi bạn bắt đầu, vì nó là một thư viện rất mạnh mẽ. Nếu không, sẽ rất khó để có được bất cứ điều gì có ý nghĩa thực hiện.
UPDATE:
Nếu cột không phải là chỉ số bạn có hai lựa chọn:
- Làm cho nó chỉ số (tạm thời hoặc vĩnh viễn nếu nó dữ liệu chuỗi thời gian)
df[(df['date'] > '2013-01-01') & (df['date'] < '2013-02-01')]
Xem here để được giải thích chung
Câu trả lời trước đó không đúng trong kinh nghiệm của tôi, bạn không thể chuyển nó thành một chuỗi đơn giản, cần phải là đối tượng datetime. Vì vậy:
import datetime
df.ix[datetime.date(year=2014,month=1,day=1):datetime.date(year=2014,month=2,day=1)]
Tôi hoàn toàn có thể vượt qua một chuỗi không có vấn đề gì. – Ninjakannon
Chỉ mục ix không được dùng nữa, hãy sử dụng loc - http://pandas.pydata.org/pandas-docs/stable/indexing.html#ix-indexer-is-deprecated – Nick
Nếu ngày có trong chỉ mục sau đó chỉ cần:
df['20160101':'20160301']
Câu trả lời hay! Hoạt động hoàn hảo khi bạn đã lập chỉ mục ngày. – arjones
Và nếu ngày của bạn được chuẩn hóa bằng cách nhập gói datetime, bạn chỉ có thể sử dụng:
df[(df['date']>datetime.date(2016,1,1)) & (df['date']<datetime.date(2016,3,1))]
Đối chuẩn hóa chuỗi ngày tháng bằng gói datetime, bạn có thể sử dụng chức năng này:
import datetime
datetime.datetime.strptime
- 1. Thêm ngày bị thiếu vào khung dữ liệu gấu trúc
- 2. Kết hợp danh sách các khung dữ liệu gấu trúc vào một khung dữ liệu gấu trúc
- 3. chuyển đổi các khung dữ liệu gấu trúc để kích hoạt khung dữ liệu trong zeppelin
- 4. Thêm hai khung dữ liệu gấu trúc
- 5. Cắt thuận tiện các khung dữ liệu với chỉ mục ngày giờ trong gấu trúc
- 6. Xóa các hàng không kinh doanh trong ngày từ khung dữ liệu gấu trúc
- 7. gấu trúc hợp nhất khung dữ liệu điền vào các giá trị bị thiếu
- 8. tạo khung dữ liệu gấu trúc từ nhiều tệp
- 9. Kích thước tối đa của khung dữ liệu gấu trúc
- 10. Đặt thứ tự cột trong khung dữ liệu gấu trúc
- 11. Lọc các khung dữ liệu một cột
- 12. gấu trúc: Có thể lọc một khung dữ liệu với các tiêu chí boolean dài tùy ý không?
- 13. tắt khung dữ liệu gấu trúc của chỉ mục
- 14. Làm thế nào để trừ các hàng của một khung dữ liệu gấu trúc từ một khung dữ liệu khác?
- 15. thêm nhiều khung dữ liệu gấu trúc cùng một lúc
- 16. Sử dụng str.contains() trong gấu trúc với khung dữ liệu
- 17. Chia khung dữ liệu gấu trúc dựa trên tên cột
- 18. lọc một Dataframe gấu trúc dựa trên ngày giá trị
- 19. thêm hai khung dữ liệu với gấu trúc
- 20. Tính hiệu quả trên một khung dữ liệu gấu trúc
- 21. In chuỗi hoàn chỉnh của khung dữ liệu gấu trúc
- 22. Phát hiện sự kiện trong khung dữ liệu gấu trúc
- 23. Khá In một khung dữ liệu gấu trúc
- 24. Tạo khung dữ liệu gấu trúc không điền
- 25. Sắp xếp tùy chỉnh trong khung dữ liệu gấu trúc
- 26. gấu trúc tổng hợp dữ liệu vào một mảng sumpy: chuyển đổi cấu trúc dữ liệu
- 27. Lọc khung dữ liệu
- 28. cách vẽ đồ thị biểu đồ từ các khung dữ liệu trong gấu trúc
- 29. Số lần xuất hiện của các từ nhất định trong khung dữ liệu gấu trúc
- 30. Ghép nối các hàng của hai khung dữ liệu trong gấu trúc
Cảm ơn bạn, sẽ đọc. Ngày tháng là một cột riêng biệt và không phải là chỉ mục trong trường hợp của tôi. Có lẽ tôi nên cho thông tin đó ngay từ đầu. Câu hỏi của tôi không phải là rất nhiều thông tin. – AMM
đã cập nhật câu trả lời của tôi cho tài khoản để lọc cột ngày – Retozi
Bạn cũng có thể sử dụng 'truy vấn 'ở đây. 'df.query ('20130101