Open Sarah111-AHM opened 1 year ago
sec (5.1) : Introduction to pandas Data Structures : بنك الاسئلة :
Which of the following libraries is often used in tandem with pandas for numerical computing? a. NumPy b. SciPy c. statsmodels d. matplotlib
What is the main difference between pandas and NumPy? a. pandas is designed for working with tabular data, while NumPy is best suited for numerical array data. b. pandas is designed for working with homogeneous data, while NumPy is best suited for heterogeneous data. c. pandas is a smaller library compared to NumPy. d. NumPy provides more advanced data cleaning and analysis tools compared to pandas.
How would you import pandas in your code using the common import convention? a. import pandas as p b. import pandas as pd c. import pd as pandas d. from pandas import *
Which pandas data structure is a one-dimensional array-like object with an associated index? a. Series b. DataFrame c. Array d. Index
How can you access a single value or a set of values in a Series using labels from the index? a. By using the get() method b. By using the loc attribute c. By using the values attribute d. By using the iloc attribute
Which method is used to create a Series with a specified index? a. set_index() b. create_series() c. set_values() d. No specific method is required; the index can be specified directly during Series creation.
Which method is used to check for missing or NA values in a Series? a. isna() b. isnan() c. isnull() d. missing()
What happens when performing arithmetic operations between two Series objects with different indexes? a. An error is raised due to incompatible indexes. b. The operation is performed only on the common index values. c. The indexes are automatically aligned, and missing values are filled with NaN. d. The operation is not allowed between Series objects.
How would you create a DataFrame from a dict of equal-length lists? a. DataFrame.from_dict() b. DataFrame.create() c. pd.DataFrame.from_dict() d. pd.DataFrame.create()
How can you retrieve a column from a DataFrame? a. By using the column name as an attribute of the DataFrame object. b. By using the column name within square brackets []. c. By using the get_column() method. d. By using the column() attribute. الحلول للأسئلة:
a. NumPy
a. pandas is designed for working with tabular data, while NumPy is best suited for numerical array data.
b. import pandas as pd
a. Series
b. By using the loc attribute
d. No specific method is required; the index can be specified directly during Series creation.
c. isnull()
c. The indexes are automatically aligned, and missing values are filled with NaN.
c. pd.DataFrame.from_dict()
b. By using the column name within square brackets [].
What are the data infrastructures in pandas that we should be comfortable working with? a. Arrays b. Series c. DataFrames d. Tensors
What is the main difference between pandas and NumPy regarding the data types they can handle? a. pandas only works with numerical data. b. NumPy only works with heterogeneous data. c. pandas works with tabular or heterogeneous data. d. NumPy works with tabular or heterogeneous data.
What is the main purpose of using class "Series" in pandas? a. Store high-dimensional arrays. b. Organize data in a levels structure. c. Improve data processing. d. Provide an interface to store data in databases.
What is the difference between using default numbering and assigning custom numbering to items in the "Series" category? a. There is no difference in use. b. Default numbering is assigned automatically, while custom numbering can be specified. c. Default numbering can be specified, while custom numbering is assigned automatically. d. Items use numbers for the default numbering, while custom numbering is specified using the hottest
a. NumPy و SciPy
الأدوات الرئيسية في مكتبة pandas هي:
NumPy: تستخدم pandas NumPy كأساس لتنفيذ العمليات العددية والتعامل مع البيانات المتجهية. Matplotlib: تستخدم لرسم الرسوم البيانية والتصورات البيانية. جميع ما ذكر: يمكن استخدام جميع هذه الأدوات معًا في مشروع pandas. الاختلافات الرئيسية بين pandas و NumPy هي:
هيكل البيانات: NumPy يقدم هيكل بيانات متجانس متعدد الأبعاد (مصفوفات)، في حين أن pandas توفر هيكل بيانات متعدد الأبعاد غير متجانس (DataFrame) يمكن أن يحتوي على أنواع بيانات مختلفة. التعامل مع البيانات: NumPy يركز على العمليات العددية والتحليل العددي، بينما تركز pandas على التحليل والتلاعب بالبيانات بشكل شامل، بما في ذلك العمليات الإحصائية والتنظيم والتجميع وتحويل البيانات. القدرة على التعامل مع البيانات المفقودة: pandas تقدم وظائف مدمجة للتعامل مع البيانات المفقودة وتعويضها، في حين أن NumPy لا يوفر هذه القدرة. هياكل البيانات الرئيسية في pandas هي:
Series: تُستخدم لتخزين البيانات المرتبطة بأبعاد واحدة، وهي تعبير عن مجموعة من القيم مع فهرس مرتبط بها. DataFrame: يُستخدم لتخزين البيانات المرتبطة بعدة أبعاد، ويعتبر هيكل بيانات ذو بعدين (صفوف وأعمدة) مماثل لجدول قاعدة البيانات. الهياكل التي يمكن استخدامها لتخزين البيانات ذات الأبعاد الواحدة في pandas هي:
Series يمكن إنشاء Series في pandas بواسطة استخدام الدالة pd.Series() وتمرير قائمة (List) أو مصفوفة (Array) كوسيطة للقيم. على سبيل المثال:
kotlin Copy code import pandas as pd
data = [10, 20, 30, 40, 50] series = pd.Series(data) الفرق بين Series و NumPy arrays هو:
Series يحتوي على بيانات مرتبطة بفهرس (Index)، بينما NumPy arrays لا يحتوي على هذا الفهرس. Series يوفر وظائف إضافية للتعامل مع البيانات المفقودة وتعويضها. Series يوفر وظائف مدمجة للتلاعب بالبيانات وتحليلها، بينما NumPy يركز بشكل أساسي على العمليات العددية. يمكن استخدام الفهرس في Series للوصول إلى القيم والتلاعب بها. يمكن استخدام الفهرس لتحديد قيم فردية أو مجموعة قيم. على سبيل المثال:
perl Copy code import pandas as pd
data = [10, 20, 30, 40, 50] index = ['a', 'b', 'c', 'd', 'e'] series = pd.Series(data, index=index)
value = series['a']
subset = series[['a', 'b', 'c']] يمكن استخدام دوال NumPy في Series بشكل مباشر، حيث يتم تطبيق هذه الدوال على كل قيمة في السلسلة. على سبيل المثال:
kotlin Copy code import pandas as pd import numpy as np
data = [10, 20, 30, 40, 50] series = pd.Series(data)
result = np.square(series) استخدام شائع لـ Series في pandas هو لتمثيل البيانات المرتبطة بأبعاد واحدة مثل سلاسل زمنية (Time Series) أو سلاسل البيانات المرتبطة بعمود واحد في DataFrame.
يمكن إنشاء DataFrame في pandas بواسطة استخدام الدالة pd.DataFrame() وتمرير بيانات متعددة الأبعاد كوسيطة. يمكن تمرير قائمة (List) من القوائم (Lists) أو قاموس (Dictionary) أو مصفوفة (Array) وغيرها. على سبيل المثال:
kotlin Copy code import pandas as pd
data = {'Name': ['John', 'Emily', 'Kate'], 'Age': [30, 25, 35], 'City': ['New York', 'London', 'Paris']}
df = pd.DataFrame(data) عملية يمكن أن تعتبر DataFrame مشابهة لها في قواعد البيانات هي عملية الاستعلام (Querying) والتحليل الشامل للبيانات المخزنة فيه.
يمكن الوصول إلى أعمدة DataFrame باستخدام الفهرس عن طريق توفير اسم العمود كمفتاح للفهرس. على سبيل المثال:
kotlin Copy code import pandas as pd
data = {'Name': ['John', 'Emily', 'Kate'], 'Age': [30, 25, 35], 'City': ['New York', 'London', 'Paris']}
df = pd.DataFrame(data)
column = df['Name'] يمكن استخدام الفهرس للوصول إلى صفوف DataFrame باستخدام الدالة loc[] وتمرير الفهرس المراد الوصول إليه. على سبيل المثال:
kotlin Copy code import pandas as pd
data = {'Name': ['John', 'Emily', 'Kate'], 'Age': [30, 25, 35], 'City': ['New York', 'London', 'Paris']}
df = pd.DataFrame(data)
row = df.loc[0] يمكن تعديل قيم الأعمدة في DataFrame عن طريق توفير العمود والقيمة المراد تعديلها. على سبيل المثال:
kotlin Copy code import pandas as pd
data = {'Name': ['John', 'Emily', 'Kate'], 'Age': [30, 25, 35], 'City': ['New York', 'London', 'Paris']}
df = pd.DataFrame(data)
df.loc[0, 'Age'] = 32 يمكن إضافة عمود جديد في DataFrame عن طريق تعيين قيم لعمود جديد باستخدام الفهرس. على سبيل المثال:
kotlin Copy code import pandas as pd
data = {'Name': ['John', 'Emily', 'Kate'], 'Age': [30, 25, 35], 'City': ['New York', 'London', 'Paris']}
df = pd.DataFrame(data)
df['Country'] = 'USA' يمكن حذف عمود من DataFrame باستخدام الدالة drop() وتحديد اسم العمود ومحور الحذف (axis=1 للعمود). على سبيل المثال:
kotlin Copy code import pandas as pd
data = {'Name': ['John', 'Emily', 'Kate'], 'Age': [30, 25, 35], 'City': ['New York', 'London', 'Paris']}
df = pd.DataFrame(data)
df = df.drop('City', axis=1) يمكن استخدام العمليات الحسابية على أعمدة DataFrame بشكل مباشر، حيث يتم تطبيق العمليات الحسابية على كل قيمة في العمود. على سبيل المثال:
kotlin Copy code import pandas as pd
data = {'Name': ['John', 'Emily', 'Kate'], 'Age': [30, 25, 35], 'Height': [180, 165, 170]}
df = pd.DataFrame(data)
df['Height'] = df['Height'] * 0.01 استخدام شائع لـ DataFrame في pandas هو لتخزين وتحليل البيانات الهيكلية المتعددة الأبعاد، مثل بيانات المشروعات، البيانات المالية، البيانات الزمنية، وأكثر.
الفرق بين loc و iloc في pandas هو:
loc يستخدم للوصول إلى الصفوف والأعمدة باستخدام الفهرس (Index) المحدد بواسطة الأسماء. iloc يستخدم للوصول إلى الصفوف والأعمدة باستخدام الفهرس (Index) المحدد بواسطة الموقع (الفهرس العددي). بشكل عام، إذا كان لديك DataFrame مع فهرس (Index) افتراضي، فإنك يمكن أن تستخدم loc و iloc بنفس الطريقة. ومع ذلك، إذا قمت بتعيين فهرس مخصص للصفوف، فيجب استخدام loc للوصول إليها باستخدام الأسماء. على سبيل المثال:
javascript Copy code import pandas as pd
data = {'Name': ['John', 'Emily', 'Kate'], 'Age': [30, 25, 35], 'City': ['New York', 'London', 'Paris']}
df = pd.DataFrame(data) df.index = ['a', 'b', 'c']
loc
row_a = df.loc['a']
iloc
row_0 = df.iloc[0]
This is a dataset containing information about sales transactions in different stores. Convert the following data to a DataFrame and perform the following tasks:
a) Calculate the total revenue for each store. b) Sort the DataFrame based on the "quantity_sold" column in ascending order. c) Calculate the total quantity sold for each product. d) Add a new column to the DataFrame called "Profit" and calculate the profit for each transaction by deducting the cost price from the revenue.
import pandas as pd
data = {'store_id': ['A', 'B', 'C', 'A', 'B'], 'product_name': ['Apple', 'Banana', 'Orange', 'Apple', 'Grapes'], 'quantity_sold': [10, 15, 20, 5, 12], 'revenue': [50, 60, 80, 30, 45]}
Convert data to a DataFrame
df = pd.DataFrame(data)
Task a) Calculate the total revenue for each store
total_revenue = df.groupby('store_id')['revenue'].sum() print("Total Revenue by Store:") print(total_revenue) print()
Task b) Sort the DataFrame based on the "quantity_sold" column in ascending order
df_sorted = df.sort_values('quantity_sold') print("Sorted DataFrame based on Quantity Sold:") print(df_sorted) print()
Task c) Calculate the total quantity sold for each product
total_quantity_sold = df.groupby('product_name')['quantity_sold'].sum() print("Total Quantity Sold by Product:") print(total_quantity_sold) print()
Task d) Add a new column called "Profit" and calculate the profit for each transaction
cost_price = 20 # Assuming the cost price is $20 per unit df['profit'] = df['revenue'] - (cost_price * df['quantity_sold']) print("DataFrame with Profit Column:") print(df)
data = {'names': ['John', 'Sarah', 'Michael', 'Emma', 'Daniel'], 'hours_worked': [40, 35, 42, 38, 40], 'productivity': [80, 75, 90, 85, 88]} a) Calculate the total number of hours worked by all employees. b) Sort the DataFrame based on the "productivity" column in descending order. c) Calculate the average productivity for all employees. d) Add a new column to the DataFrame called "Performance" and set the value to "High" if the employee's productivity is above 85, "Medium" if it's between 70 and 85, and "Low" otherwise.
تعتبر pd.DataFrame(data) هي الدالة المستخدمة لتحويل القاموس data إلى DataFrame. يحتوي القاموس data على معلومات حول أسماء الموظفين وساعات العمل والإنتاجية.
أما df['hours_worked'].sum() فتقوم بحساب إجمالي عدد ساعات العمل لجميع الموظفين. يتم تطبيق دالة sum() على عمود 'hours_worked' في الDataFrame.
df.sort_values('productivity', ascending=False) تستخدم لفرز الDataFrame بناءً على عمود 'productivity' بترتيب تنازلي. يتم استخدام دالة sort_values() مع العمود 'productivity'، ويتم ضبط المعامل ascending=False للفرز بترتيب تنازلي.
df['productivity'].mean() تقوم بحساب المتوسط للإنتاجية لجميع الموظفين. يتم تطبيق دالة mean() على عمود 'productivity' في الDataFrame.
pd.cut(df['productivity'], bins=[0, 70, 85, 100], labels=['Low', 'Medium', 'High']) تستخدم لإضافة عمود جديد يسمى 'Performance' إلى الDataFrame بناءً على مستويات الإنتاجية. تستخدم دالة cut() لتصنيف قيم 'productivity' إلى فئات وتعيين تسميات ('Low', 'Medium', 'High') لكل فئة. يتم تخزين الفئات الناتجة في عمود 'Performance' في الDataFrame. Q1) This is a dataset containing information about students' grades in different subjects. Convert the following data to a DataFrame and perform the following tasks:
Q1) This is a dataset containing information about employees in a company. Convert the following data to a DataFrame and perform the following tasks:
data = {'names': ['John', 'Sarah', 'Michael', 'Emma', 'Daniel', 'Emily'], 'ids': ['123456', '987654', '567890', '234567', '890123', '345678'], 'ages': [35, 28, 42, 31, 37, 26], 'department': ['IT', 'HR', 'Finance', 'Marketing', 'IT', 'Sales'], 'salary': [5000, 4000, 6000, 4500, 5500, 3800]} a) Sort the DataFrame based on the "ages" column in ascending order. b) Filter the DataFrame to only include employees who work in the "IT" department. c) Calculate the average salary of employees in the "Finance" department. d) Add a new column to the DataFrame called "Bonus" and calculate the bonus amount for each employee based on their salary. The bonus should be 10% of the salary.
This is a dataset containing information about students and their exam scores. Convert the following data to a DataFrame and perform the following tasks:
a) Calculate the total score for each student by summing their scores in all subjects. b) Sort the DataFrame based on the "math_score" column in descending order. c) Calculate the average score for each subject. d) Add a new column to the DataFrame called "Pass" and set the value to "Yes" if the student's average score is above 80, and "No" otherwise.