'Yükseklik' adlı bir sütuna sahip bir veri çerçevem var ve değerleri float'a dönüştürmek istiyorum. Varsayılan birim metredir, ancak hatalı biçimde veya inç cinsinden bazı değerleri vardır. Öyle görünüyor
height
0 16
1 7
2 7
3 6 m
4 2.40
5 5'8"
6 3m
7 6,9
8 9;6;3
9 Unknown
10 4.66
11 Bilinmiyor
12 11' 4"
dtype: object
Temel olarak, inç/ft cinsinden değerleri metre birimine dönüştürmem, aşağıdaki gibi değerleri dönüştürmem gerekiyor Bilinmiyor
ve Unknown
-e doğru NaN
, birim belirtimi gibi kaldırın m
m
. ondalık sayılardaki virgülü şununla değiştirin: .
ve değer için en büyük sayıyı saklayın 9;6;3
. Son dtypes float veya int olmalıdır.
Python'da yeniyim, bu yüzden şu ana kadar gelişmiş teknikleri nasıl kullanacağımı bilmiyorum. Bu görevi kullanarak başarmaya çalışıyordum
def to_num(a):
try:
return float(pd.to_numeric(a, errors = 'raise'))
except ValueError:
return a
df['height'] = to_num(df['height'])
ama işe yaramadı. Yinelemeyi kullanmam gerekip gerekmediğini merak ediyordum, ancak veri kümesinde 2 milyondan fazla satır bulunduğundan, bu sütundaki tüm hücreleri yinelemek çok karmaşık görünüyor.