Pandalar: i̇ki çizgi arasındaki fark nasıl bulunur?
Bir pandanın DataFrame’indeki iki satır arasındaki farkı bulmak için DataFrame.diff() işlevini kullanabilirsiniz.
Bu işlev aşağıdaki sözdizimini kullanır:
DataFrame.diff(dönemler=1, eksen=0)
Altın:
- dönemler: farkı hesaplamak için önceki satırların sayısı.
- eksen: satırlar (0) veya sütunlar (1) arasındaki farkı bulun.
Aşağıdaki örnekler bu fonksiyonun pratikte nasıl kullanılacağını göstermektedir.
Örnek 1: Önceki satırların her biri arasındaki farkı bulun
Aşağıdaki pandalara sahip olduğumuzu varsayalım 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
Aşağıdaki kod, bir DataFrame’in her geçerli satırı ile önceki satır arasındaki farkın nasıl bulunacağını gösterir:
#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
Önceki birkaç satır arasındaki farkı da bulabileceğimizi unutmayın. Örneğin, aşağıdaki kod, her geçerli satır ile üç satır önce görünen satır arasındaki farkın nasıl bulunacağını gösterir:
#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
Örnek 2: Koşula göre farkı bulun
Geçerli satır ile önceki satır arasındaki farkın belirli bir değerden az veya fazla olduğu satırları görüntülemek için DataFrame’i de filtreleyebiliriz.
Örneğin, aşağıdaki kod yalnızca geçerli satırın değerinin önceki satırın değerinden küçük olduğu satırları döndürür:
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
Ek kaynaklar
Pandas’ta birden çok sütunda benzersiz değerler nasıl bulunur?
Pandas DataFrame’i sütun değerlerine göre filtreleme
Pandas DataFrame’de satırları dizine göre seçme