الباندا: كيفية العثور على الفرق بين خطين


يمكنك استخدام الدالة DataFrame.diff() للعثور على الفرق بين صفين في DataFrame الباندا.

تستخدم هذه الوظيفة بناء الجملة التالي:

DataFrame.diff(الفترات=1، المحور=0)

ذهب:

  • الفترات: عدد الأسطر السابقة لحساب الفرق.
  • المحور: ابحث عن الفرق في الصفوف (0) أو الأعمدة (1).

توضح الأمثلة التالية كيفية استخدام هذه الوظيفة عمليًا.

مثال 1: أوجد الفرق بين كل صف سابق

لنفترض أن لدينا DataFrame الباندا التالية:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' period ': [1, 2, 3, 4, 5, 6, 7, 8],
                   ' sales ': [12, 14, 15, 15, 18, 20, 19, 24],
                   ' returns ': [2, 2, 3, 3, 5, 4, 4, 6]})

#view DataFrame
df

	period sales returns
0 1 12 2
1 2 14 2
2 3 15 3
3 4 15 3
4 5 18 5
5 6 20 4
6 7 19 4
7 8 24 6

يوضح التعليمة البرمجية التالية كيفية العثور على الفرق بين كل صف حالي في DataFrame والصف السابق:

 #add new column to represent sales differences between each row
df[' sales_diff '] = df[' sales ']. diff ()

#view DataFrame
df

        period sales returns sales_diff
0 1 12 2 NaN
1 2 14 2 2.0
2 3 15 3 1.0
3 4 15 3 0.0
4 5 18 5 3.0
5 6 20 4 2.0
6 7 19 4 -1.0
7 8 24 6 5.0

لاحظ أنه يمكننا أيضًا إيجاد الفرق بين عدة أسطر سابقة. على سبيل المثال، يوضح التعليمة البرمجية التالية كيفية العثور على الفرق بين كل صف حالي والصف الذي ظهر قبله بثلاثة صفوف:

 #add new column to represent sales differences between current row and 3 rows earlier
df[' sales_diff '] = df[' sales ']. diff (periods= 3 )

#view DataFrame
df

        period sales returns sales_diff
0 1 12 2 NaN
1 2 14 2 NaN
2 3 15 3 NaN
3 4 15 3 3.0
4 5 18 5 4.0
5 6 20 4 5.0
6 7 19 4 4.0
7 8 24 6 6.0

مثال 2: أوجد الفرق حسب الحالة

يمكننا أيضًا تصفية DataFrame لعرض الصفوف التي يكون فيها الفرق بين الصف الحالي والصف السابق أقل أو أكثر من قيمة معينة.

على سبيل المثال، يقوم التعليمة البرمجية التالية بإرجاع الصفوف التي تكون قيمة الصف الحالي فيها أقل من قيمة الصف السابق فقط:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' period ': [1, 2, 3, 4, 5, 6, 7, 8],
                   ' sales ': [12, 14, 15, 13, 18, 20, 19, 24],
                   ' returns ': [2, 2, 3, 3, 5, 4, 4, 6]})

#find difference between each current row and the previous row
df[' sales_diff '] = df[' sales ']. diff ()

#filter for rows where difference is less than zero
df = df[df[' sales_diff ']< 0 ]

#view DataFrame
df

        period sales returns sales_diff
3 4 13 3 -2.0
6 7 19 4 -1.0

مصادر إضافية

كيفية العثور على قيم فريدة في أعمدة متعددة في Pandas
كيفية تصفية Pandas DataFrame حسب قيم الأعمدة
كيفية تحديد الصفوف حسب الفهرس في Pandas DataFrame

Add a Comment

ایمئیل یایینلانمایاجاق ایسته‎نیله‎ن بوشلوقلار خاللانمیشدیر *