Pandalar: tüm bir sütunun alt dizesi nasıl elde edilir


Pandas DataFrame’de bir sütunun tamamının alt dizesini almak için aşağıdaki temel sözdizimini kullanabilirsiniz:

 df[' some_substring '] = df[' string_column ']. str [1:4]

Bu özel örnek, string_column içindeki 1’den 4’e kadar konumlardaki karakterleri içeren some_substring adında yeni bir sütun oluşturur.

Aşağıdaki örnek, bu sözdiziminin pratikte nasıl kullanılacağını gösterir.

Örnek: Pandalar’da tüm sütunun alt dizesini alın

Diyelim ki çeşitli basketbol takımları hakkında bilgiler içeren aşağıdaki pandalar DataFrame’e sahibiz:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['Mavericks', 'Warriors', 'Rockets', 'Hornets', 'Lakers'],
                   ' points ': [120, 132, 108, 118, 106]})

#view DataFrame
print (df)

        team points
0 Mavericks 120
1 Warriors 132
2 Rockets 108
3 Hornets 118
4 Lakers 106

Takım sütunundaki karakterleri içeren 1 ve 4 konumları arasında yeni bir sütun oluşturmak için aşağıdaki sözdizimini kullanabiliriz:

 #create column that extracts characters in positions 1 through 4 in team column
df[' team_substring '] = df[' team ']. str [1:4]

#view updated DataFrame
print (df)

        team points team_substring
0 Mavericks 120 ave
1 Warriors 132 arr
2 Rockets 108 ock
3 Hornets 118 orn
4 Lakers 106 ake

Team_substring adı verilen yeni sütun, ekip sütunundaki 1 ile 4 konumları arasındaki karakterleri içerir.

Sayısal bir sütundan bir alt dize çıkarmak için bu sözdizimini kullanmaya çalışırsanız bir hata alacağınızı unutmayın:

 #attempt to extract characters in positions 0 through 2 in points column
df[' points_substring '] = df[' points ']. str [:2]

AttributeError: Can only use .str accessor with string values!

Bunun yerine, öncelikle sayısal sütunu astype(str) kullanarak bir dizeye dönüştürmeniz gerekir:

 #extract characters in positions 0 through 2 in points column
df[' points_substring '] = df[' points ']. astype (str). str [:2]

#view updated DataFrame
print (df)

        team points points_substring
0 Mavericks 120 12
1 Warriors 132 13
2 Rockets 108 10
3 Hornets 118 11
4 Lakers 106 10

Bu sefer nokta sütunundaki 0’dan 2’ye kadar olan konumlardaki karakterleri başarılı bir şekilde çıkarabildik çünkü önce onları bir dizeye dönüştürdük.

Ek kaynaklar

Aşağıdaki eğitimlerde pandalarda diğer ortak görevlerin nasıl gerçekleştirileceği açıklanmaktadır:

Pandalar: Dizenin birden fazla alt dize içerip içermediğini kontrol edin
Pandalar: bir sütundaki her değere bir dize nasıl eklenir
Pandalar: belirli bir dize içeren sütunların nasıl seçileceği

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir