Pandas dataframe'in bir kopyası nasıl (ve neden) oluşturulur?
Bir pandanın DataFrame alt kümesini her oluşturduğunuzda ve alt kümesi değiştirdiğinizde, orijinal DataFrame de değiştirilecektir.
Bu nedenle, alt kümede yaptığınız değişikliklerin orijinal DataFrame’de de yapılmaması için alt kümeleme sırasında .copy() işlevini kullanmak her zaman iyi bir fikirdir.
Aşağıdaki örnekler alt kümeleme sırasında bir pandanın DataFrame kopyasının nasıl (ve neden) oluşturulacağını gösterir.
Örnek 1: Bir DataFrame’i kopya olmadan alt kümeleme
Aşağıdaki pandalara sahip olduğumuzu varsayalım DataFrame:
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'], ' points ': [18, 22, 19, 14, 14, 11, 20, 28], ' assists ': [5, 7, 7, 9, 12, 9, 9, 4]}) #view DataFrame print (df) team points assists 0 to 18 5 1 B 22 7 2 C 19 7 3 D 14 9 4 E 14 12 5 F 11 9 6 G 20 9 7:28 a.m. 4
Şimdi orijinal DataFrame’in yalnızca ilk dört satırını içeren bir alt küme oluşturduğumuzu varsayalım:
#define subsetted DataFrame df_subset = df[0:4] #view subsetted DataFrame print (df_subset) team points assists rebounds 0 A 18 5 11 1 B 22 7 8 2 C 19 7 10 3 D 14 9 6
Alt kümedeki değerlerden herhangi birini değiştirirsek orijinal DataFrame’in değeri de değişecektir:
#change first value in team column
df_subset. team [0] = ' X '
#view subsetted DataFrame
print (df_subset)
team points assists
0X18 5
1 B 22 7
2 C 19 7
3 D 14 9
#view original DataFrame
print (df)
team points assists
0X18 5
1 B 22 7
2 C 19 7
3 D 14 9
4 E 14 12
5 F 11 9
6 G 20 9
7:28 a.m. 4
Takım sütununun ilk değerinin hem DataFrame alt kümesinde hem de orijinal DataFrame’de “A” yerine “X” olarak değiştirildiğini unutmayın.
Bunun nedeni orijinal DataFrame’in bir kopyasını oluşturmamış olmamızdır.
Örnek 2: DataFrame’i Kopyalamayla Alt Kümeleme
Tekrar aşağıdaki panda DataFrame’e sahip olduğumuzu varsayalım:
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'], ' points ': [18, 22, 19, 14, 14, 11, 20, 28], ' assists ': [5, 7, 7, 9, 12, 9, 9, 4]}) #view DataFrame print (df) team points assists 0 to 18 5 1 B 22 7 2 C 19 7 3 D 14 9 4 E 14 12 5 F 11 9 6 G 20 9 7:28 a.m. 4
Tekrar, orijinal DataFrame’in yalnızca ilk dört satırını içeren bir alt küme oluşturduğumuzu varsayalım, ancak bu sefer orijinal DataFrame’in bir kopyasını oluşturmak için .copy() yöntemini kullanıyoruz:
#define subsetted DataFrame df_subset = df[0:4]. copy ()
Şimdi DataFrame alt kümesinin takım sütununun ilk değerini değiştirdiğimizi varsayalım:
#change first value in team column
df_subset. team [0] = ' X '
#view subsetted DataFrame
print (df_subset)
team points assists
0X18 5
1 B 22 7
2 C 19 7
3 D 14 9
#view original DataFrame
print (df)
team points assists
0 to 18 5
1 B 22 7
2 C 19 7
3 D 14 9
4 E 14 12
5 F 11 9
6 G 20 9
7:28 a.m. 4
Ekip sütununun ilk değerinin yalnızca DataFrame alt kümesinde “A” yerine “X” olarak değiştirildiğini unutmayın.
Alt kümeyi oluştururken bir kopyasını oluşturmak için .copy() işlevini kullandığımızdan, orijinal DataFrame bozulmadan kalır.
Ek kaynaklar
Aşağıdaki eğitimlerde pandalarda diğer yaygın işlemlerin nasıl gerçekleştirileceği açıklanmaktadır:
Pandas DataFrame’deki satırlar duruma göre nasıl silinir
Pandas DataFrame’i birden çok koşulda filtreleme
Pandas DataFrame’de “DEĞİL” filtresi nasıl kullanılır?