Nhà khoa học dữ liệu phỏng vấn trăn
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. Includes coding as well as theoretical questions Show Data science is a well-paid and meaningful career. To maximize their chances of success, data scientists maintain a rich set of skills like Python, SQL, R, and other tools for working on data science projects One way to improve your odds of landing a data scientist job is to have an in-demand data science technical skill like Python. It is one of the main programming languages used for data science, because it is simple, readable, and supports external libraries Data scientists use Python for statistics and mathematical calculations. It is widely used for Machine Learning, specifically for writing Natural Language Processing and sentiment analysis algorithms. It’s also possible to write Python algorithms to analyze medical images and help detect and prevent fraud Python is not the only language used for data science. 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. To learn about differences between Python and R, read our comparison article Python vs R for Data Science Python is considered a simple programming language, but it has a lot of features to remember. Supporting libraries like pandas can further enhance its capabilities. We compiled a list of python data science interview questions to help you remember and practice everything you need to know before going into the interview Basic Python Data Science Interview QuestionsLet’s start with the simplest python data science interview questions. 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óaWriting Python code is important, but knowing its underlying principles is just as important. Usually interview questions are basic. For example, what are variables in Python and how to use them for data analysis Let’s look at some questions asked of candidates during actual interviews Question #1. Data structures in PythonThis python data science interview question was asked during an interview with Walmart. The easy answer is to list data structures in Python. danh sách, bộ, tuple, từ điển It’s great if you can describe the characteristics and features of each data structure and explain differences between them. For example, a list can contain many different types of values and can be mutated, whereas tuples are an immutable pair of two values For a detailed answer, check out the ‘Solution Discussion’ section of this question on StrataScratch. Link is given above Question #2. Difference between sorted(somelist) and somelist. sort()Link to the question. https. //platform. stratascratch. com/technical/2115-python-list This question comes from the General Assembly, and it is a good indicator of a candidate's depth of knowledge of Python The short answer is that the sorted(list) function results in a new list with sorted values, whereas somelist. sort() sorts the original list in place, keeping its identity Refer to the ‘Solution Discussion’ section of this question on StrataScratch platform to get a detailed breakdown of differences between two functions Question #3. Memory Stored and Retrieved in Python’s DictionaryLink to the question. https. //platform. stratascratch. com/technical/2091-python-dictionary Dictionaries in Python store information as key-value pairs
We can retrieve a value of a specific key using square brackets - person[age], which would retrieve the value of ‘age’ key. Be prepared to answer similar questions. For example, to explain dictionary comprehension in Python To better understand how Python dictionaries store data, check the ‘Solution Discussion’ section of this question on the StrataScratch platform Question #4. Identifying Missing Values in a Data SetLink to the question. https. //platform. stratascratch. com/technical/2254-missing-values-in-data-set The easiest way to identify missing values is to use df. isnull() or df. isna() functions, available for Pandas dataframes. We can check the entire dataset using the df. isnull. values. any() function, which returns true if there are missing values, and false if there are none For a more detailed answer, check the ‘Solution Discussion’ section on StrataScratch platform Question #5. Generate a sorted vector from two sorted vectorsLink to the question. https. //platform. stratascratch. com/technical/2104-sorted-vectors Experience and knowledge of list comprehension in Python can help you easily answer this question First, create a new array with the combined size of the first and second arrays. Then write a function that goes over arr_1 and arr_2 simultaneously, determines which is the smaller number from two arrays and adds it to the new array. And continues doing this until the end You can look at the actual code on the ‘Solution Discussions’ section on StrataScratch platform Coding Python Data Science Interview QuestionsIn the process of interviewing for a job, aspiring data scientists have to solve coding challenges as well. Bạn nên làm quen với việc viết mã Python Follow these steps to easily solve even the most difficult questions 1. Understand the question Before answering the question, make sure you completely understand it. For example, what columns need to be returned and other details for solving the question When dealing with difficult questions, read them multiple times to wrap your head around them 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. Analyze data Looking at available table(s) can help you come up with a logical solution. Once you completely understand the verbal or written description of the question, look at the table and find columns that contain values that you’ll use in your calculations To get the general idea of columns and values contained in them, look at types of values in each column. It will tell you if you need to convert values in certain columns 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ó. In theory, you can start writing Python code right away, but there’s a better approach We recommend you to think about the problem in logical steps. 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 Python data science interview questions are usually very complex. One remedy is to organize your thoughts on paper. 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 ms_projects table Table. 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 In this step, we use the groupby() function to create groups of employees working on different products. We use the size() function to get a total number of employees in each group. This function in python works similar to the count() aggregate function in SQL
Once we have calculated the number of employees for each group, we use the reset_index() to go back to default behavior. By default, each row in a dataframe is assigned a numeric index to identify it Step 3. Calculate budget-per-employee ratio We created a new property called ‘budget_emp_ratio’. We calculate values for this property by dividing the values in the budget column by the total number of employees
Note that in the previous step, we aggregated values in the emp_id column for each group. So the emp_id column now contains a total number of employees We also round the result of this division to the nearest whole number Step 4. Output ordered values Next, we use the sort_values() function to arrange budget_emp_ratio values in a descending order (from highest to lowest), and output them as well as project names in the final result
Here is what our final solution looks like
Output The widget allows us to run our code, see the output and check if it’s the right answer Our output exactly matches the expected output, so it is accepted as correct Question #7. Total Cost Of OrdersA prime example of a Python data science interview question where a candidate has to use functions from pandas and numpy libraries to get the answer Link to the question. https. //platform. stratascratch. com/coding/10183-total-cost-of-orders Understand the question We are asked to calculate the total of values in a certain column. Another condition is that we calculate the total for each different user Question description tells us to output the id, first_name, and aggregate total_order_cost. It also specifies the way to order records Phân tích dữ liệu Let’s take a quick look at the types of columns in two tables. You might need to change the type of data, or use specific functions depending on type of data The customers table contains typical information to describe each customer - their name, location, and contacts Each record in the orders table stores information like a unique identifier for each order, identifier for customer who placed the order, order date, description, and cost One important detail is to notice the cust_id column of the orders table. Values of this column reference the identity of each customer, stored in the id column of the customers table Next, look at actual tables filled with data bảng khách hàng Table. customers 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 orders table Table. orders idcust_idorder_dateorder_detailstotal_order_cost132019-03-04Coat100232019-03-01Shoes80332019-03-07Skirt30472019-02-01Coat25572019-03-10Shoes80 Hiển thị tất cảChuyển đổi dTypes We must aggregate dollar values of each customer’s orders, stored in the total_order_cost column of the orders table Lập kế hoạch tiếp cận của bạn Solving questions like this one requires a thorough understanding of simple concepts like variables in Python, as well as knowledge of merge(), groupby() and other functions from the pandas library We need data from both tables to aggregate the value of orders placed by individual customers. Then we create a group of rows for each individual customer to store the information about orders placed by each order Finally, we need aggregation Python functions to calculate the total of values in each group Write the code
Output 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 Intermediate Python Data Science Interview QuestionsNow let’s look at python data science interview questions that are a bit more complex. You might have to answer these if you’re interviewing for a middle data analyst or similar data scientist role Question #8. Distances TraveledThis is a question from Lyft, where you have to find 10 users with highest distance values Link to the question. https. //nền tảng. tầng lớp. com/coding/10324-quãng đường đã đi Understand the question 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 Write the code Để 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ố 8_______Bướ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 Understand the question Đọ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 Write the code 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 Understand the question 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 Write the code Hãy thử viết giải pháp trong tiện ích bên dưới Output 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. Link to the question. https. //nền tảng. tầng lớp. com/coding/10173-days-at-number-one Understand the question 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ế Pay attention to position, trackname and date columns in spotify_daily_rankings_2017_us table Bảng. spotify_daily_ranks_2017_us positiontracknameartiststreamsurldate1Shape of YouEd Sheeran1467892https. //mở ra. spotify. com/track/7qiZfU4dY1lWllzX7mPBI32017-02-091Tài khoản ngân hàng21 Savage1176086https. //mở ra. spotify. com/track/5eqK0tbzUPo2SoeZsov04s2017-08-051rockstarPost Malone2072302https. //mở ra. spotify. com/track/7wGoVu4Dady5GV0Sv4UIsx2017-10-291Bad và Boujee (feat. Lil Uzi Vert)Migos1823391https. //mở ra. spotify. com/track/4Km5HrUvYTaSUfiSGPJeQR2017-01-271Despacito - RemixLuis Fonsi1480367https. //mở ra. 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ở ra. spotify. com/track/2of2DM5LqTh7ohmmVXUKsH2017-02-04no85559160Ai đó trong đám đông - Từ nhạc phim "La La Land"Emma Stone17134https. //mở ra. spotify. com/track/7xE4vKvjqUTtHyJ9zi0k1q2017-02-26fr1046089175The GreatestSia10060https. //mở ra. spotify. com/track/7xHWNBFm6ObGEQPaUxHuKO2017-03-06cl35082425Không thể nào quênMontana thuộc Pháp46603https. //mở ra. spotify. com/track/3B54sVLJ402zGa6Xm4YGNe2017-10-01no7768221Bad và Boujee (feat. Lil Uzi Vert)Migos1823391https. //mở ra. 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. We need to find instances when a record satisfies number one position both for the US and worldwide The next step is to create a column to store the number of days each individual song has stayed as number one both in the US and worldwide Finally, we must output the highest number of days each song lasted in the number one position Write the code Step 1. Combine data from table Pandas library provides a merge() function which combines data from two tables, similar to JOINs in SQL 1We can use the second parameter to specify the columns that are common between two tables Tables we merged have many columns with identical names. When merged, all of these columns will be combined into one table. Since columns in one table can not have identical names, they will be assigned a suffix For example, the position column from the first (left) table will become position_x, whereas the position from the second table will become position_y Step 2. Find songs that satisfy the condition This question has a very clear condition - we need to find instances when a US track has stayed on number 1 on both domestic and international spotify rankings We create the top1 variable to store all records of number one songs in the US. 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ỳ 2Then we take values where the value of position_y column is 1, and store them as integers in a new column called 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 We need to use the astype() function to ensure that values are stored as integers. Later on, we will calculate the sum of values in this column Almost all of the functions mentioned above are from the Pandas library. Read this article to better understand why and how to import Pandas as pd in Python Step 3. Calculate the number of days We use the groupby() function to get unique groups for each value in the trackname column. In other words, create an arbitrary group of records for each song. Finally, calculate the aggregate sum of values in the world_position column for each group and store it in the ndays column We use the transform() function to calculate the total number of days. It works similarly to window aggregate functions in SQL. It calculates the total value in the world_position column for each group, and stores the total in a new column. Unlike normal aggregate functions, transform does not collapse all records into one 3This step is easier to understand if we look at the actual table before we apply transform() function on it Python will look at values in the trackname column, and separate rows into two groups, one for each distinct value in this column. For each group, it will add up values in the world_position and store them in the ndays column
We use the groupby() to make sure we’re working with unique songs, and max() function to get the highest ndays value from each group 4Then we use the to_frame() function to convert ndays series to dataframe format As a final step, we use the reset_index() function to reset the index column, and arrange songs in an alphabetical order With that, we arrive at the final solution 5
|