Câu hỏi phỏng vấn khoa học dữ liệu Python dành cho Freshers
Chuẩn bị cho cuộc phỏng vấn về khoa học dữ liệu bằng cách nghiên cứu danh sách đầy đủ các câu hỏi Python kèm theo câu trả lời. Bao gồm mã hóa cũng như các câu hỏi lý thuyết Show
Khoa học dữ liệu là một nghề nghiệp được trả lương cao và có ý nghĩa. Để tối đa hóa cơ hội thành công, các nhà khoa học dữ liệu duy trì một bộ kỹ năng phong phú như Python, SQL, R và các công cụ khác để làm việc trong các dự án khoa học dữ liệu Một cách để cải thiện khả năng bạn đạt được công việc nhà khoa học dữ liệu là có kỹ năng kỹ thuật về khoa học dữ liệu theo yêu cầu như Python. Đây là một trong những ngôn ngữ lập trình chính được sử dụng cho khoa học dữ liệu vì nó đơn giản, dễ đọc và hỗ trợ các thư viện bên ngoài Các nhà khoa học dữ liệu sử dụng Python để thống kê và tính toán. Nó được sử dụng rộng rãi cho Machine Learning, đặc biệt để viết các thuật toán phân tích tình cảm và Xử lý ngôn ngữ tự nhiên. Cũng có thể viết các thuật toán Python để phân tích hình ảnh y tế và giúp phát hiện và ngăn chặn gian lận Python không phải là ngôn ngữ duy nhất được sử dụng cho khoa học dữ liệu. R là một ngôn ngữ lập trình phổ biến khác để làm việc với dữ liệu. Để tìm hiểu về sự khác biệt giữa Python và R, hãy đọc bài viết so sánh Python vs R cho Khoa học dữ liệu của chúng tôi Python được coi là ngôn ngữ lập trình đơn giản nhưng lại có rất nhiều tính năng cần nhớ. Các thư viện hỗ trợ như gấu trúc có thể nâng cao hơn nữa khả năng của nó. Chúng tôi đã biên soạn một danh sách các câu hỏi phỏng vấn khoa học dữ liệu về python để giúp bạn ghi nhớ và thực hành mọi thứ bạn cần biết trước khi bước vào cuộc phỏng vấn Câu hỏi phỏng vấn khoa học dữ liệu Python cơ bảnHãy bắt đầu với những câu hỏi phỏng vấn về khoa học dữ liệu python đơn giản nhất. Người phỏng vấn sử dụng những câu hỏi này để đánh giá kiến thức của ứng viên về Python và khả năng viết mã của họ Câu hỏi phỏng vấn khoa học dữ liệu Python không mã hóaViết mã Python là quan trọng, nhưng biết các nguyên tắc cơ bản của nó cũng quan trọng không kém. Thông thường các câu hỏi phỏng vấn là cơ bản. Ví dụ, các biến trong Python là gì và cách sử dụng chúng để phân tích dữ liệu Cùng xem một số câu hỏi của ứng viên khi phỏng vấn thực tế Câu hỏi 1. Cấu trúc dữ liệu trong PythonCâu hỏi phỏng vấn khoa học dữ liệu trăn này đã được hỏi trong cuộc phỏng vấn với Walmart. Câu trả lời dễ dàng là liệt kê các cấu trúc dữ liệu trong Python. danh sách, bộ, tuple, từ điển Thật tuyệt nếu bạn có thể mô tả các đặc điểm và tính năng của từng cấu trúc dữ liệu và giải thích sự khác biệt giữa chúng. Ví dụ: một danh sách có thể chứa nhiều loại giá trị khác nhau và có thể bị thay đổi, trong khi các bộ dữ liệu là một cặp hai giá trị bất biến Để có câu trả lời chi tiết, hãy xem phần 'Thảo luận về Giải pháp' của câu hỏi này trên StrataScratch. Liên kết được đưa ra ở trên Câu hỏi 2. Sự khác biệt giữa được sắp xếp (somelist) và somelist. loại()Liên kết đến câu hỏi. https. //nền tảng. tầng lớp. com/kỹ thuật/2115-python-list Câu hỏi này đến từ Đại hội đồng và nó là một chỉ báo tốt về kiến thức chuyên sâu về Python của ứng viên Câu trả lời ngắn gọn là hàm sorted(list) dẫn đến một danh sách mới với các giá trị được sắp xếp, trong khi somelist. sort() sắp xếp danh sách ban đầu tại chỗ, giữ nguyên danh tính của nó Tham khảo phần 'Thảo luận về Giải pháp' của câu hỏi này trên nền tảng StrataScratch để biết chi tiết về sự khác biệt giữa hai chức năng Câu hỏi số 3. Bộ nhớ được lưu trữ và truy xuất trong từ điển của PythonLiên kết đến câu hỏi. https. //nền tảng. tầng lớp. com/kỹ thuật/2091-python-từ điển Từ điển trong Python lưu trữ thông tin dưới dạng cặp khóa-giá trị
Chúng tôi có thể truy xuất giá trị của một khóa cụ thể bằng cách sử dụng dấu ngoặc vuông - người [tuổi], sẽ truy xuất giá trị của khóa 'tuổi'. Sẵn sàng trả lời những câu hỏi tương tự. Ví dụ: để giải thích cách hiểu từ điển trong Python Để hiểu rõ hơn cách từ điển Python lưu trữ dữ liệu, hãy xem phần 'Thảo luận giải pháp' của câu hỏi này trên nền tảng StrataScratch Câu hỏi số 4. Xác định các giá trị còn thiếu trong tập dữ liệuLiên kết đến câu hỏi. https. //nền tảng. tầng lớp. com/kỹ thuật/2254-missing-values-in-data-set Cách dễ nhất để xác định các giá trị bị thiếu là sử dụng df. isnull() hoặc df. các hàm isna(), có sẵn cho các khung dữ liệu Pandas. Chúng ta có thể kiểm tra toàn bộ tập dữ liệu bằng lệnh df. không có giá trị. giá trị. hàm any(), trả về true nếu thiếu giá trị và false nếu không có Để có câu trả lời chi tiết hơn, hãy xem phần 'Thảo luận về Giải pháp' trên nền tảng StrataScratch Câu hỏi số 5. Tạo một vectơ được sắp xếp từ hai vectơ được sắp xếpLiên kết đến câu hỏi. https. //nền tảng. tầng lớp. com/kỹ thuật/2104-sắp xếp-vector Kinh nghiệm và kiến thức hiểu list trong Python có thể giúp bạn dễ dàng trả lời câu hỏi này Đầu tiên, tạo một mảng mới với kích thước kết hợp của mảng thứ nhất và thứ hai. Sau đó viết một hàm duyệt đồng thời mảng_1 và mảng_2, xác định số nào nhỏ hơn từ hai mảng và thêm nó vào mảng mới. Và tiếp tục làm điều này cho đến khi kết thúc Bạn có thể xem mã thực tế trên phần 'Thảo luận giải pháp' trên nền tảng StrataScratch Mã hóa câu hỏi phỏng vấn khoa học dữ liệu PythonTrong quá trình phỏng vấn xin việc, các nhà khoa học dữ liệu đầy tham vọng cũng phải giải quyết các thách thức về mã hóa. Bạn nên làm quen với việc viết mã Python Thực hiện theo các bước sau để dễ dàng giải quyết ngay cả những câu hỏi khó nhất 1. Hiểu câu hỏi Trước khi trả lời câu hỏi, hãy chắc chắn rằng bạn hoàn toàn hiểu nó. Ví dụ: những cột nào cần được trả lại và các chi tiết khác để giải quyết câu hỏi Khi giải quyết các câu hỏi khó, hãy đọc chúng nhiều lần để hiểu chúng Nếu bạn đã cố gắng hết sức để hiểu câu hỏi nhưng một số điều vẫn chưa rõ ràng, hãy hỏi người phỏng vấn để làm rõ 2. Phân tích dữ liệu Nhìn vào (các) bảng có sẵn có thể giúp bạn đưa ra giải pháp hợp lý. Sau khi bạn hoàn toàn hiểu phần mô tả bằng lời hoặc bằng văn bản của câu hỏi, hãy nhìn vào bảng và tìm các cột chứa các giá trị mà bạn sẽ sử dụng trong phép tính của mình Để có ý tưởng chung về các cột và giá trị chứa trong chúng, hãy xem các loại giá trị trong mỗi cột. Nó sẽ cho bạn biết nếu bạn cần chuyển đổi giá trị trong một số cột nhất định 3. Lập kế hoạch tiếp cận của bạn Khi bạn hoàn toàn hiểu cấu trúc của câu hỏi và dữ liệu có sẵn, bạn có thể bắt đầu giải nó. Về lý thuyết, bạn có thể bắt đầu viết mã Python ngay lập tức, nhưng có một cách tiếp cận tốt hơn Chúng tôi khuyên bạn nên suy nghĩ về vấn đề theo các bước hợp lý. Hãy nghĩ về tất cả các hoạt động và tính toán bạn cần thực hiện để đi từ dữ liệu có sẵn đến câu trả lời cuối cùng. Sau đó viết ra các bước hợp lý này và các chi tiết quan trọng cho từng bước Các câu hỏi phỏng vấn về khoa học dữ liệu Python thường rất phức tạp. Một biện pháp khắc phục là sắp xếp những suy nghĩ của bạn trên giấy. Bằng cách này, bạn sẽ thấy việc theo dõi và viết mã cho từng bước dễ dàng hơn nhiều 4. viết mã Hãy suy nghĩ về những tính năng của Python mà giải pháp của bạn sẽ sử dụng. Nhập tất cả các thư viện khoa học dữ liệu cần thiết như numpy và python Nếu bạn bối rối về việc xâu chuỗi nhiều hàm lại với nhau, hãy tạo các biến để lưu trữ kết quả của mỗi lệnh gọi hàm Bắt đầu với một giải pháp cơ bản và dần dần thêm phức tạp vào nó. Xuất mã để xem các thay đổi gia tăng có tác dụng mong muốn không Câu hỏi số 6. dự án đắt tiềnHãy bắt đầu danh sách các thách thức mã hóa của chúng tôi với câu hỏi đơn giản này từ Microsoft. Như mọi khi, việc tìm ra câu trả lời đúng bắt nguồn từ việc chú ý đến dữ liệu và đặt ra các bước hợp lý để giải quyết câu hỏi Liên kết đến câu hỏi. https. //nền tảng. tầng lớp. com/coding/10301-đắt-dự án Hiểu câu hỏi Để có câu trả lời, chúng ta phải tính phần trung bình của ngân sách phân bổ cho mỗi nhân viên Câu hỏi yêu cầu chúng tôi xuất tên dự án, ngân sách cho mỗi khách hàng và sắp xếp các giá trị số theo thứ tự tăng dần Phân tích dữ liệu Không thực tế khi bắt đầu viết mã Python trước khi bạn hoàn toàn hiểu dữ liệu có sẵn Trả lời câu hỏi này yêu cầu bạn phải làm việc với hai bảng - ms_projects chứa thông tin về các dự án và ms_emp_projects lưu trữ thông tin chi tiết của từng nhân viên Trước tiên, hãy xem loại giá trị trong mỗi cột dữ liệu có sẵn Nhìn vào dữ liệu thực tế trong bảng thậm chí có thể minh họa nhiều hơn và giúp bạn đưa điều này vào ngữ cảnh bảng ms_projects Bảng. ms_projects idtitlebudget1Project1294982Project2324873Project3439094Project4157765Project536268 Hiển thị tất cảChuyển đổi dTypes Cột id chứa các số để xác định từng dự án. Cột tiêu đề chứa tên của từng dự án và ngân sách chứa tổng ngân sách cho từng dự án bảng ms_emp_projects Bảng. ms_emp_projects emp_idproject_id105921105932105943105954105965 Hiển thị tất cảChuyển đổi dTypes Cột emp_id này chỉ đơn giản là một danh sách các số để xác định từng nhân viên và cột duy nhất khác được sử dụng để chỉ định dự án mà nhân viên đó được chỉ định Lập kế hoạch tiếp cận của bạn Để trả lời câu hỏi này, chúng ta cần tính tỷ lệ ngân sách trên nhân viên và sắp xếp danh sách cuối cùng theo thứ tự cụ thể Vì thông tin về dự án và nhân viên được chia thành hai bảng nên chúng ta sẽ phải kết hợp chúng lại Tiếp theo, chúng ta cần tìm số lượng công nhân cho mỗi dự án. Chúng tôi sử dụng nguyên tắc giống như trong SQL - tạo các nhóm nhân viên làm việc trong cùng một dự án, sau đó lấy số lượng nhân viên trong mỗi nhóm Chúng ta có thể tính tỷ lệ ngân sách trên mỗi nhân viên bằng cách chia ngân sách cho số lượng nhân viên được chỉ định cho từng dự án Cuối cùng, chúng ta cần sắp xếp các hàng sao cho những hàng có ngân sách cao nhất cho mỗi nhân viên được ưu tiên trước, theo sau là các giá trị thấp hơn viết mã Hãy dịch cách tiếp cận logic của chúng ta sang mã Python Bước 1. Kết hợp dữ liệu từ hai bảng Chúng tôi sử dụng chức năng hợp nhất () từ thư viện Pandas, đây là giải pháp thay thế cho THAM GIA trong SQL. Nó cho phép chúng tôi kết hợp dữ liệu từ hai khung dữ liệu Chúng tôi sử dụng từ khóa 'bật' để chỉ định thứ nguyên được chia sẻ giữa hai tập dữ liệu và từ khóa 'làm thế nào' để cho Python biết phải làm gì với các bản ghi không có giá trị khớp
Bước 2. Tổng hợp số lượng công nhân cho mỗi dự án Ở bước này chúng ta sử dụng hàm groupby() để tạo các nhóm nhân viên làm việc trên các sản phẩm khác nhau. Chúng ta sử dụng hàm size() để lấy tổng số nhân viên trong mỗi nhóm. Hàm này trong python hoạt động tương tự như hàm tổng hợp count() trong SQL
Khi chúng tôi đã tính toán số lượng nhân viên cho mỗi nhóm, chúng tôi sử dụng reset_index() để quay lại hành vi mặc định. Theo mặc định, mỗi hàng trong khung dữ liệu được gán một chỉ mục số để xác định nó Bước 3. Tính tỷ lệ ngân sách trên mỗi nhân viên Chúng tôi đã tạo thuộc tính mới có tên là 'budget_emp_ratio'. Chúng tôi tính toán các giá trị cho thuộc tính này bằng cách chia các giá trị trong cột ngân sách cho tổng số nhân viên
Lưu ý rằng ở bước trước, chúng tôi đã tổng hợp các giá trị trong cột emp_id cho từng nhóm. Vì vậy, cột emp_id hiện chứa tổng số nhân viên Ta cũng làm tròn kết quả của phép chia này đến số nguyên gần nhất Bước 4. Xuất giá trị theo thứ tự Tiếp theo, chúng ta sử dụng hàm sort_values() để sắp xếp các giá trị budget_emp_ratio theo thứ tự giảm dần (từ cao nhất đến thấp nhất) và xuất chúng cũng như tên dự án trong kết quả cuối cùng
Đây là giải pháp cuối cùng của chúng tôi trông như thế nào
đầu ra Tiện ích cho phép chúng tôi chạy mã của mình, xem đầu ra và kiểm tra xem đó có phải là câu trả lời đúng không Đầu ra của chúng tôi khớp chính xác với đầu ra dự kiến, vì vậy nó được chấp nhận là chính xác Câu hỏi số 7. Tổng chi phí của đơn đặt hàngMột ví dụ điển hình về câu hỏi phỏng vấn khoa học dữ liệu Python trong đó ứng viên phải sử dụng các hàm từ thư viện pandas và numpy để có câu trả lời Liên kết đến câu hỏi. https. //nền tảng. tầng lớp. com/coding/10183-total-chi-co-đơn-hàng Hiểu câu hỏi Chúng tôi được yêu cầu tính tổng các giá trị trong một cột nhất định. Một điều kiện nữa là chúng tôi tính tổng cho từng người dùng khác nhau Mô tả câu hỏi yêu cầu chúng tôi xuất id, first_name và tổng_đơn_hàng_chi phí. Nó cũng chỉ định cách sắp xếp các bản ghi Phân tích dữ liệu Hãy xem nhanh các loại cột trong hai bảng. Bạn có thể cần thay đổi loại dữ liệu hoặc sử dụng các chức năng cụ thể tùy thuộc vào loại dữ liệu Bảng khách hàng chứa thông tin điển hình để mô tả từng khách hàng - tên, vị trí và địa chỉ liên hệ của họ Mỗi bản ghi trong bảng đơn hàng lưu trữ thông tin như mã định danh duy nhất cho mỗi đơn hàng, mã định danh cho khách hàng đã đặt hàng, ngày đặt hàng, mô tả và chi phí Một chi tiết quan trọng là lưu ý cột cust_id của bảng đơn đặt hàng. Giá trị của cột này tham chiếu danh tính của từng khách hàng, được lưu trữ trong cột id của bảng khách hàng Tiếp theo, hãy xem các bảng thực tế chứa đầy dữ liệu bảng khách hàng Bảng. khách hàng idfirst_namelast_namecityaddressphone_number8JohnJosephSan Francisco928-386-81647JillMichaelAustin813-297-06924WilliamDanielDenver813-368-12005HenryJacksonMiami808-601-751313EmmaIsaacMiami808-690-5201 Hiển thị tất cảChuyển đổi dTypes bảng đơn đặt hàng Bảng. đơn đặt hàng idcust_idorder_dateorder_detailstotal_order_cost132019-03-04Áo khoác100232019-03-01Giày80332019-03-07Váy30472019-02-01Áo khoác25572019-03-10Giày80 Hiển thị tất cảChuyển đổi dTypes Chúng tôi phải tổng hợp giá trị đô la của từng đơn đặt hàng của khách hàng, được lưu trữ trong cột tổng_đơn_hàng_chi phí của bảng đơn đặt hàng Lập kế hoạch tiếp cận của bạn Giải quyết các câu hỏi như thế này đòi hỏi sự hiểu biết thấu đáo về các khái niệm đơn giản như biến trong Python, cũng như kiến thức về merge(), groupby() và các hàm khác từ thư viện pandas Chúng tôi cần dữ liệu từ cả hai bảng để tổng hợp giá trị đơn đặt hàng của từng khách hàng. Sau đó, chúng tôi tạo một nhóm các hàng cho từng khách hàng riêng lẻ để lưu trữ thông tin về các đơn hàng được đặt theo từng đơn hàng Cuối cùng, chúng ta cần các hàm Python tổng hợp để tính tổng các giá trị trong mỗi nhóm Viết mã
đầu ra Mô tả câu hỏi cho biết đầu ra phải là ba cột này, với tên của khách hàng được sắp xếp theo thứ tự bảng chữ cái Câu hỏi phỏng vấn khoa học dữ liệu Python trung cấpBây giờ, hãy xem các câu hỏi phỏng vấn khoa học dữ liệu về python phức tạp hơn một chút. Bạn có thể phải trả lời những câu hỏi này nếu bạn đang phỏng vấn cho vị trí nhà phân tích dữ liệu cấp trung hoặc vai trò nhà khoa học dữ liệu tương tự Câu hỏi số 8. Quãng đường đã điĐây là câu hỏi từ Lyft, nơi bạn phải tìm 10 người dùng có giá trị khoảng cách cao nhất Liên kết đến câu hỏi. https. //nền tảng. tầng lớp. com/coding/10324-quãng đường đã đi Hiểu câu hỏi Các điều kiện cho câu hỏi phỏng vấn khoa học dữ liệu python này khá rõ ràng. Chúng tôi cần tìm những người dùng có TOP 10 quãng đường đã đi và xuất ra ba cột sau. id, tên và khoảng cách Phân tích dữ liệu Trong câu hỏi này, dữ liệu có sẵn được lưu trữ trong hai bảng. Chúng ta cần làm việc với dữ liệu từ cả hai bảng để đi đến câu trả lời cuối cùng Trước tiên, hãy xem loại giá trị trong mỗi cột. Đầu tiên, là bảng lyft_rides, chứa thông tin về các chuyến đi được đặt qua ứng dụng Lyft Thứ hai là lyft_users, lưu trữ thông tin về người dùng ứng dụng
Id người dùng và tên của họ được lưu trữ trong bảng lyft_users Nó sẽ giúp xem xét dữ liệu thực tế trong hai bảng này
Bảng. lyft_rides_log iduser_id distance101893102405610328831043383105187 Hiển thị tất cảChuyển đổi dTypes
Bảng. lyft_users idname1Dustin Smith2Jay Ramirez3Joseph Cooke4Melinda Young5Sean Parker Hiển thị tất cảChuyển đổi dTypes
Lập kế hoạch tiếp cận của bạn Chia nhỏ bất kỳ thử thách mã hóa nào thành một số bước dễ quản lý có thể giúp bạn tránh được lỗi Để có được thông tin đầy đủ về người dùng và các chuyến đi mà họ đã đặt qua ứng dụng, chúng tôi sẽ phải kết hợp hai bảng thành một Tiếp theo, chúng ta cần chia các chuyến đi thành các nhóm, một nhóm dành cho mỗi người dùng duy nhất đã đặt chuyến đi. Sau đó, chúng tôi có thể thêm khoảng cách cho mỗi người dùng Khi chúng tôi tổng hợp khoảng cách cho từng người dùng, thì chúng tôi cần xếp hạng các nhóm dựa trên giá trị này Bước cuối cùng sẽ là chọn người dùng có thứ hạng TOP 10 và trả về các cột đã chỉ định Viết mã Để giải quyết câu hỏi này, chúng ta sẽ cần các hàm Python để kết hợp dữ liệu, nhóm các giá trị và xếp hạng các hàng dựa trên các giá trị trong một cột cụ thể Bước 1. Kết hợp dữ liệu từ hai bảng Chúng ta có thể sử dụng hàm merge() để kết hợp dữ liệu từ hai bảng
Bước 2. Tổng hợp số dặm đã đi và sắp xếp dữ liệu Chúng ta có thể sử dụng hàm groupby() để tạo các nhóm hàng dựa trên danh tính của người dùng Chúng ta cũng cần hàm tổng hợp sum() để cộng tất cả các giá trị khoảng cách cho mỗi nhóm Sau đó, chúng tôi sử dụng sort_values() để sắp xếp các giá trị theo thứ tự giảm dần
Bước 3. Xếp hạng các hàng dựa trên khoảng cách của chúng Tiếp theo, chúng tôi tạo cột 'xếp hạng' và sử dụng hàm rank() để tạo giá trị cho nó. Chúng tôi xác định thứ hạng dựa trên các giá trị trong cột 'khoảng cách' của mỗi hàng ________số 8Bước 4. Trả lại đầu ra cuối cùng Chúng tôi đặt điều kiện để chọn các giá trị có 10 giá trị cao nhất trong cột khoảng cách và xuất các cột 'user_id', 'name' và 'khoảng cách'
Và giải pháp cuối cùng 0
Chạy giải pháp cuối cùng của chúng tôi sẽ trả về kết quả đúng Câu hỏi số 9. Bài đăng rácNgười phỏng vấn Facebook đặt câu hỏi này để kiểm tra khả năng viết mã Python của ứng viên. Quan trọng hơn, câu hỏi này có thể hữu ích để kiểm tra khả năng chú ý đến chi tiết của họ Liên kết đến câu hỏi. https. //nền tảng. tầng lớp. com/coding/10134-spam-posts Hiểu câu hỏi Đọc câu hỏi nhiều lần để hiểu đúng nhiệm vụ trong tay. Ngoài ra, câu hỏi giải thích những gì cấu thành một bài đăng spam và cách xác định các bài đăng đó trong dữ liệu có sẵn Phân tích dữ liệu Nhìn vào loại giá trị trong mỗi cột có thể giúp bạn hình thành ấn tượng đầu tiên về dữ liệu có sẵn facebook_posts dường như là bảng chính chứa hầu hết thông tin, ngoại trừ dữ liệu xem Nếu thấy cần thiết, bạn có thể truy cập dữ liệu xem cho từng bài đăng bằng cách kiểm tra chéo các giá trị post_id. Cả hai bảng chia sẻ cột này Hãy xem trước hai bảng này với dữ liệu thực tế bảng facebook_posts Bảng. facebook_posts post_idposterpost_textpost_keywordspost_date02Trận đấu với Lakers đêm qua thật tuyệt. [bóng rổ,lakers,nba]2019-01-0111 Lebron James là đẳng cấp hàng đầu. [bóng rổ,lebron_james,nba]2019-01-0222Măng tây ăn được. [măng tây,món ăn]2019-01-0131Spaghetti là món ăn Ý. [spaghetti,food]2019-01-0243Người dùng 3 không chia sẻ sở thích[#spam#]2019-01-01 Hiển thị tất cảChuyển đổi dTypes
Bảng. facebook_post_views post_idviewer_id4041425051 Hiển thị tất cảChuyển đổi dTypes
Trước tiên, bạn nên tìm các bài đăng trên facebook có thể được phân loại là spam. Theo mô tả câu hỏi, chúng ta cần xem xét các giá trị trong cột post_keywords của mỗi hàng để xem cột đó có chứa từ 'spam' hay không Chúng tôi cũng cần một số cách để tính toán các bài đăng spam. Một cách là tạo một cột mới và lưu trữ 1 nếu bài đăng là spam và 0 nếu không phải. Để làm được điều đó, chúng ta cần áp dụng một hàm trên các giá trị trong trục 'is_spam'. Chúng ta có thể sử dụng hàm apply() từ thư viện gấu trúc để làm điều này. Phải mất một đối số, một hàm lambda gán 0 hoặc 1 tùy thuộc vào phân loại của bài đăng Trong trường hợp bạn chưa biết, hàm Lambda chỉ là một cú pháp ngắn hơn để định nghĩa một hàm. Thường hữu ích cho các chức năng một dòng đơn giản Tiếp theo, chúng ta có thể cộng các giá trị trong cột is_spam mới và tính tỷ lệ chia sẻ của các bài đăng đó so với tổng số bài đăng. Đó là một phép tính tỷ lệ phần trăm đơn giản, trong đó bạn chia một số cho một số khác và nhân kết quả với 100 Để tính lượt chia sẻ, chúng tôi cần lưu trữ tổng số bài đăng spam và số lượng tất cả các bài đăng. Sau khi được tính toán, chúng tôi có thể loại bỏ hai cột đó và xuất ngày và chia sẻ thư rác Viết mã Hãy cố gắng tự viết giải pháp trong tiện ích bên dưới
Câu trả lời cuối cùng phải chứa hai cột này Câu hỏi số 10. Những Thành Phố Có Những Ngôi Nhà Đắt NhấtĐây là câu hỏi từ Zillow, một nền tảng nơi bạn có thể duyệt danh sách nhà Liên kết đến câu hỏi. https. //nền tảng. tầng lớp. com/coding/10315-thành-phố-có-nhà-đắt-nhất Hiểu câu hỏi Tiền đề của câu hỏi phỏng vấn khoa học dữ liệu python này khá rõ ràng. Những người phỏng vấn mong bạn đưa ra những thành phố có giá nhà trung bình đắt hơn giá trung bình quốc gia Phân tích dữ liệu Để giải quyết câu hỏi này, chúng ta chỉ cần làm việc với một bảng chứa id danh sách, tiểu bang, thành phố và địa chỉ của bất động sản cũng như giá thị trường của nó Trước tiên, hãy xem xét các loại giá trị trong cột Tên cột cho bảng này là mô tả. Sẽ an toàn khi giả định rằng cột id xác định từng danh sách thuộc tính riêng lẻ trên nền tảng. Trong khi tiểu bang, thành phố và street_address biểu thị vị trí của nó. Bảng mkt_price lưu trữ một giá trị số nguyên cho giá của tài sản tính bằng đô la Đối với tính duy nhất của giá trị, sẽ an toàn khi cho rằng các cột thành phố và tiểu bang có thể chứa các giá trị trùng lặp. Tuy nhiên, các giá trị trong id xác định từng thuộc tính riêng lẻ và phải là duy nhất Tiếp theo, hãy xem bảng zillow_transactions thực tế Bảng. zillow_transactions idstatecitystreet_addressmkt_price1NYThành phố New York66 Trout Drive4497612NYThành phố New YorkAtwater2775273NYThành phố New York58 Phố Gates2683944NYThành phố New YorkNorcross2799295NYThành phố New York337 Shore Ave. 151592 Hiển thị tất cảChuyển đổi dTypes Nhìn vào dữ liệu có sẵn xác nhận các giả định của chúng tôi là chính xác Lập kế hoạch tiếp cận của bạn Bước đầu tiên là tìm giá trung bình của bất động sản ở mỗi thành phố. Mỗi bản ghi trong bảng có sẵn mô tả từng danh sách riêng lẻ, nhưng không hiển thị thông tin về giá trung bình cho từng thành phố Tuy nhiên, chúng ta có thể sử dụng hàm mean() từ thư viện numpy để tổng hợp các danh sách riêng lẻ và tìm giá nhà trung bình cho mỗi thành phố. Chúng ta có thể làm tương tự để tìm giá trung bình của tất cả các ngôi nhà trong cả nước Cuối cùng, chúng tôi sẽ so sánh hai mức trung bình và đưa ra các thành phố cao hơn mức trung bình quốc gia Viết mã Hãy thử viết giải pháp trong tiện ích bên dưới đầu ra Theo mô tả câu hỏi, đầu ra phải là danh sách các thành phố đáp ứng các tiêu chí Câu hỏi phỏng vấn khoa học dữ liệu Python nâng caoCuối cùng, hãy xem một số ví dụ về các câu hỏi phỏng vấn khoa học dữ liệu trăn khó nhất. Bạn dễ gặp những câu hỏi này khi phỏng vấn các vị trí cấp cao Nhìn vào dữ liệu có sẵn có thể giúp bạn hiểu những câu hỏi khó này. Trước khi cố gắng giải nó, hãy đọc tiền đề câu hỏi nhiều lần để hiểu nó. Sau đó nghĩ về giải pháp và cách dịch nó sang mã Python
Nếu cuối cùng bạn làm việc tại Spotify, bạn có thể được giao những nhiệm vụ tương tự. Ví dụ: để thống kê về từng bài hát hoặc phân tích dữ liệu chính xác cho các công cụ đề xuất, v.v. Liên kết đến câu hỏi. https. //nền tảng. tầng lớp. com/coding/10173-days-at-number-one Hiểu câu hỏi Trước tiên, hãy hiểu nhiệm vụ trong tầm tay. Chúng tôi được yêu cầu tìm hiểu thời gian mỗi bài hát đứng ở vị trí số một trên Spotify, cả trên bảng xếp hạng quốc tế và trong nước Phân tích dữ liệu Nhìn vào dữ liệu có thể giúp bạn có được suy nghĩ để giải quyết câu hỏi Trước hết, hãy xem mô tả câu hỏi và tìm các cột chứa các giá trị quan trọng để tính toán Đối với câu hỏi này, chúng tôi có hai bảng với nhiều cột, vì vậy có thể mất một lúc để tìm các giá trị quan trọng Bây giờ chúng ta đã có ý tưởng chung về các giá trị trong mỗi cột, hãy xem xét dữ liệu thực tế Hãy chú ý đến các cột vị trí, tên theo dõi và ngày tháng trong bảng spotify_daily_ranks_2017_us Bảng. spotify_daily_ranks_2017_us positiontracknameartiststreamsurldate1Shape of YouEd Sheeran1467892https. //mở. spotify. com/track/7qiZfU4dY1lWllzX7mPBI32017-02-091Tài khoản ngân hàng21 Savage1176086https. //mở. spotify. com/track/5eqK0tbzUPo2SoeZsov04s2017-08-051rockstarPost Malone2072302https. //mở. spotify. com/track/7wGoVu4Dady5GV0Sv4UIsx2017-10-291Bad và Boujee (feat. Lil Uzi Vert)Migos1823391https. //mở. spotify. com/track/4Km5HrUvYTaSUfiSGPJeQR2017-01-271Despacito - RemixLuis Fonsi1480367https. //mở. spotify. com/track/5CtI0qwDJkDQGwXD1H1cLb2017-07-03 Hiển thị tất cảChuyển đổi dTypes
Bảng. spotify_worldwide_daily_song_rank idpositiontracknameartiststreamsurldateregion30365152Heart Won't ForgetMatoma28047https. //mở. spotify. com/track/2of2DM5LqTh7ohmmVXUKsH2017-02-04no85559160Ai đó trong đám đông - Từ nhạc phim "La La Land"Emma Stone17134https. //mở. spotify. com/track/7xE4vKvjqUTtHyJ9zi0k1q2017-02-26fr1046089175The GreatestSia10060https. //mở. spotify. com/track/7xHWNBFm6ObGEQPaUxHuKO2017-03-06cl35082425Không thể nào quênMontana thuộc Pháp46603https. //mở. spotify. com/track/3B54sVLJ402zGa6Xm4YGNe2017-10-01no7768221Bad và Boujee (feat. Lil Uzi Vert)Migos1823391https. //mở. spotify. com/track/4Km5HrUvYTaSUfiSGPJeQR2017-01-27us Hiển thị tất cảChuyển đổi dTypes Một điều rõ ràng - chúng ta sẽ phải làm việc với các giá trị ngày để tìm ra sự khác biệt về thời gian giữa chúng Lập kế hoạch tiếp cận của bạn Việc có thể chia nhỏ câu hỏi thành một vài bước dễ quản lý có thể giúp bạn viết mã không có lỗi, ngay cả khi bạn đang viết bên ngoài trình soạn thảo mã, chẳng hạn như trên bảng trắng hoặc một tờ giấy Chúng ta phải theo dõi thứ hạng bài hát trên cả bảng xếp hạng trong nước và quốc tế, vì vậy chúng ta nên kết hợp hai bảng Câu hỏi nêu rõ rằng chúng ta cần đếm số ngày mỗi bài hát đứng ở vị trí số một. Chúng tôi cần tìm các trường hợp khi một bản ghi đáp ứng vị trí số một cho cả Hoa Kỳ và trên toàn thế giới Bước tiếp theo là tạo một cột để lưu trữ số ngày mà mỗi bài hát riêng lẻ giữ vị trí quán quân ở cả Hoa Kỳ và trên toàn thế giới Cuối cùng, chúng ta phải xuất ra số ngày cao nhất mà mỗi bài hát đứng ở vị trí số một Viết mã Bước 1. Kết hợp dữ liệu từ bảng Thư viện Pandas cung cấp hàm merge() kết hợp dữ liệu từ hai bảng, tương tự như THAM GIA trong SQL 1Chúng ta có thể sử dụng tham số thứ hai để chỉ định các cột chung giữa hai bảng Các bảng chúng tôi đã hợp nhất có nhiều cột có tên giống hệt nhau. Khi được hợp nhất, tất cả các cột này sẽ được kết hợp thành một bảng. Vì các cột trong một bảng không được trùng tên nên chúng sẽ được gán hậu tố Ví dụ: cột vị trí từ bảng đầu tiên (bên trái) sẽ trở thành vị trí_x, trong khi vị trí từ bảng thứ hai sẽ trở thành vị trí_y Bước 2. Tìm bài hát thỏa mãn điều kiện Câu hỏi này có một điều kiện rất rõ ràng - chúng ta cần tìm các trường hợp khi một bản nhạc của Hoa Kỳ giữ vị trí số 1 trên cả bảng xếp hạng spotify trong nước và quốc tế Ta tạo biến top1 để lưu trữ tất cả kỷ lục của các bài hát số một tại Mỹ. Chúng tôi đạt được điều này bằng cách kiểm tra các giá trị của cột position_x, cột này chứa các giá trị của cột vị trí lưu trữ tất cả các bản ghi của các bài hát số một tại Hoa Kỳ 2Sau đó, chúng tôi lấy các giá trị trong đó giá trị của cột position_y là 1 và lưu trữ chúng dưới dạng số nguyên trong một cột mới có tên là world_position Đừng quên giá trị position_y là giá trị của cột vị trí trong bảng xếp hạng toàn cầu Chúng ta cần sử dụng hàm astype() để đảm bảo rằng các giá trị được lưu dưới dạng số nguyên. Sau này, chúng ta sẽ tính tổng các giá trị trong cột này Hầu như tất cả các chức năng được đề cập ở trên là từ thư viện Pandas. Đọc bài viết này để hiểu rõ hơn về lý do và cách nhập Pandas dưới dạng pd trong Python Bước 3. Tính số ngày Chúng tôi sử dụng hàm groupby() để lấy các nhóm duy nhất cho mỗi giá trị trong cột tên bản nhạc. Nói cách khác, tạo một nhóm bản ghi tùy ý cho mỗi bài hát. Cuối cùng, tính tổng các giá trị trong cột world_position cho mỗi nhóm và lưu trữ nó trong cột ndays Chúng ta sử dụng hàm transform() để tính tổng số ngày. Nó hoạt động tương tự như các hàm tổng hợp cửa sổ trong SQL. Nó tính toán tổng giá trị trong cột world_position cho mỗi nhóm và lưu trữ tổng số trong một cột mới. Không giống như các hàm tổng hợp thông thường, biến đổi không thu gọn tất cả các bản ghi thành một 3Bước này sẽ dễ hiểu hơn nếu chúng ta nhìn vào bảng thực tế trước khi áp dụng hàm transform() trên đó Python sẽ xem xét các giá trị trong cột tên bản nhạc và tách các hàng thành hai nhóm, một cho mỗi giá trị riêng biệt trong cột này. Đối với mỗi nhóm, nó sẽ cộng các giá trị trong world_position và lưu trữ chúng trong cột ndays
Chúng tôi sử dụng hàm groupby() để đảm bảo rằng chúng tôi đang làm việc với các bài hát độc đáo và hàm max() để nhận giá trị ndays cao nhất từ mỗi nhóm 4Sau đó, chúng tôi sử dụng hàm to_frame() để chuyển đổi chuỗi ndays sang định dạng khung dữ liệu Bước cuối cùng, chúng ta sử dụng hàm reset_index() để thiết lập lại cột chỉ mục và sắp xếp các bài hát theo thứ tự bảng chữ cái Với điều đó, chúng tôi đi đến giải pháp cuối cùng 5
|