0

I have a dataframe called df, which basically has Height and Weight about football players.

For example, the height could be represented:

1.94 1,94 1'94 or null values

How I can write a function which transform all the data to X.XX??

I would like to have it in a function, in order to replicate on other columns

I know the estructure of a function is something like that

def height(df):



    assert(isinstance(df, pd.DataFrame))
    return df

I know how to do it by commands but I'm a lost with functions in python...

Thanks in advance of all of you.

Happy holidays!!

now you can see the N,NN and N.NN there are like 4 or 5 data as N'NN

Altura
1,89 m (6 ft 2 in)
1,87 m (6 ft 2 in)
1,90 m (6 ft 3 in)
1,81 m (5 ft 11 in)
1,87 m (6 ft 2 in)[1]​
1,91 m (6 ft 3 in)
1,83 m (6 ft 0 in)
1,80 m (5 ft 11 in)
1,85 m (6 ft 1 in)
1,77 m (5 ft 10 in)
1,86 m
1,87 m (6 ft 2 in)
1,75 m (5 ft 9 in)
1,87 m (6 ft 2 in)
1,79 m (5 ft 10 in)
1,78 m (5 ft 10 in)
1,82 m (6 ft 0 in)
1,91 metros
1,84 m (6 ft 0 in)
1,74 m (5 ft 9 in)
1,80 m
1,84 m (6 ft 0 in)
1,69 m (5 ft 7 in)
1,87 m (6 ft 2 in)
1,87 m (6 ft 2 in)
1,82 m (6 ft 0 in)
1,74 m (5 ft 9 in) metros
1,88 m (6 ft 2 in)

1,80 m (5 ft 11 in) metros
1,86 m (6 ft 1 in) metros
1,70 m (5 ft 7 in)
1,85 m (6 ft 1 in)
1,84 m (6 ft 0 in) metros
1,78 m (5 ft 10 in)
1,86 m (6 ft 1 in) metros
1,85 m (6 ft 1 in)
1.70 metros
1,80 m (5 ft 11 in)
1,81 metros
1,86 m (6 ft 1 in)
1,85 m (6 ft 1 in)
1,76 m (5 ft 9 in)[1]​
1,71 m (5 ft 7 in)
1,77 m (5 ft 10 in)
1,69 m (5 ft 7 in)
1,95 m (6 ft 5 in)[1]​
1,87 m (6 ft 2 in)
2,03 m (6 ft 8 in)
1,96 m (6 ft 5 in)
1,79 metros
1,75 metros
1,83 metros
1,93 m (6 ft 4 in)
1,85 m (6 ft 1 in)
1,78 metros
1,88 m (6 ft 2 in)
1,84 metros
1,68 m
1,70 m (5 ft 7 in)
1,70 metros
1,81 m (5 ft 11 in)
1,64 m (5 ft 5 in)
1,78 metros
1,78 metros
1,75 metros
1,83 m (6 ft 0 in)
1,81 metros
1,81 m (5 ft 11 in)
1,83 m (6 ft 0 in)
1.79 metros
1,82 metros
1,87 metros
1,90 metros
1,74 metros
1,75 m (5 ft 9 in)
1.85 m
1,75 metros
1,81 m (5 ft 11 in)
1,82 metros
1,85 m (6 ft 1 in)
1,76 m (5 ft 9 in).
1,92 m (6 ft 4 in)
1,88 m (6 ft 2 in)
1.83 metros
1,71 m (5 ft 7 in)
1.74 metros
1,80 m (5 ft 11 in)
1,78 metros

1,78 metros
1,77 m (5 ft 10 in)
1,81 metros
1,74 m (5 ft 9 in)
1,82 m (6 ft 0 in)
1,69 m (5 ft 7 in)
1,89 m (6 ft 2 in)
1,96 m (6 ft 5 in)
1,88 m
1,80 m
1,88 metros
1,84 m (6 ft 0 in)
1,84 m (6 ft 0 in)[1]​ metros
1,88 m (6 ft 2 in)[1]​
1,87 m (6 ft 2 in)
1,81 m (5 ft 11 in)
1,85 m (6 ft 1 in)
1,74 metros

1,67 m
1,80 metros
1,81 metros
1,62 m (5 ft 4 in)
1,80 m (5 ft 11 in)
1,80 m (5 ft 11 in).
1,84 metros
1.60metros
1,82 m (6 ft 0 in)
1,75 metros
1,81 m (5 ft 11 in)
1,86 m (6 ft 1 in)
1,85 metros
1,82 m (6 ft 0 in) metros
1,72 m (5 ft 8 in)
1,83 m (6 ft 0 in)

1,93 m (6 ft 4 in)
1,88 m (6 ft 2 in)
1,68 m (5 ft 6 in)
1,87 m (6 ft 2 in)
1'88 metros
1,83 m (6 ft 0 in)
1,84 m (6 ft 0 in)
1,85 m (6 ft 1 in)
1,82 metros
1.48 m
1,76 metros
1,82 m.
1.83 metros
1,84 m (6 ft 0 in)
1,79 m (5 ft 10 in)
1,84 metros
1,70 m (5 ft 7 in)
1,75 m (5 ft 9 in)
1,84 m (6 ft 0 in)

1,85 m (6 ft 1 in)
1,91 m (6 ft 3 in)[2]​
1,82 m (6 ft 0 in)[1]​
1,73 m (5 ft 8 in)
1,84 m (6 ft 0 in)
1,84 m (6 ft 0 in)
1,91 m (6 ft 3 in)
1,80 m (5 ft 11 in)
1,74 m (5 ft 9 in)[2]​
1,84 m (6 ft 0 in)[1]​
1,80 m (5 ft 11 in)
1,83 m (6 ft 0 in)
1,72 m (5 ft 8 in)[2]​
1,85 m (6 ft 1 in)[1]​
1,83 m.
1,82 m (6 ft 0 in)[2]​
1,76 m (5 ft 9 in)
1,78 m (5 ft 10 in)
1,79 metros
1,85 m (6 ft 1 in)
1,85 m (6 ft 1 in)
1,85 m (6 ft 1 in)[3]​
1,73 m (5 ft 8 in)
1,81 m.
1,79 m (5 ft 10 in)[1]​
1,80 m (5 ft 11 in)
1,82 m (6 ft 0 in)
1,80 m (5 ft 11 in)
1,76 m.
1,77 m (5 ft 10 in)
1,87 m (6 ft 2 in)[1]​
1,85 m (6 ft 1 in)
1,77 m (5 ft 10 in)
1,94 m (6 ft 4 in)[1]​
1,74 m (5 ft 9 in)[4]​
1,70 m (5 ft 7 in)
1,78 m (5 ft 10 in)
1,77 m (5 ft 10 in)
1,82 m (6 ft 0 in)
1,83 m (6 ft 0 in)
1,84 m (6 ft 0 in)
1,89 m (6 ft 2 in)
1,76 m (5 ft 9 in)[1]​
1,72 m (5 ft 8 in)
1,71 m (5 ft 7 in)
1,74 m (5 ft 9 in)
1,78 m (5 ft 10 in)
1,88 m (6 ft 2 in)
1,75 m (5 ft 9 in)[2]​
1,82 m (6 ft 0 in)[5]​
1,70 m (5 ft 7 in)[5]​
1,78 m (5 ft 10 in)
1,76 m (5 ft 9 in)
1,75 m (5 ft 9 in)[1]​
1,10 m (3 ft 7 in)
1,82 m (6 ft 0 in)
1,71 metros
1,75 m (5 ft 9 in)
1,89 m (6 ft 2 in).[2]​
1,89 metros
1,88 m (6 ft 2 in).
1,86 m (6 ft 1 in)
1,82 m (6 ft 0 in)
1,78 m (5 ft 10 in)
1,75 m (5 ft 9 in)
1,69 m (5 ft 7 in)
1,85 m (6 ft 1 in)
1,82 m (6 ft 0 in).
1,78 m (5 ft 10 in)
1,79 m (5 ft 10 in)
1,80 m (5 ft 11 in)
1,86 m (6 ft 1 in)
1,85 m (6 ft 1 in)
1,81 m (5 ft 11 in)
1,76 m (5 ft 9 in)
1,84 m (6 ft 0 in).
1,79 m (5 ft 10 in)
1,72 m (5 ft 8 in)
1,77 m (5 ft 10 in)[1]​
1,89 m (6 ft 2 in)
1,80 m (5 ft 11 in)
1,96 m (6 ft 5 in)
1,90 metros
1,97 m
1,75 metros
1.76 metros
1,85 metros
1,86 m (6 ft 1 in)
1,74 metros
1.87 m
1,84 m (6 ft 0 in)
1,72 metros
1,80 m (5 ft 11 in).
1,75 metros

1,75 m (5 ft 9 in)
1,69 m (5 ft 7 in).
1,82 metros
1,75 m (5 ft 9 in)

1,78 m (5 ft 10 in)
1,70 m (5 ft 7 in)
1,72 m (5 ft 8 in)
1,88metros
1,73 m (5 ft 8 in)

1,92 metros
1.76 metros
1,78 m
1,91 metros
1,86 m (6 ft 1 in)
1,80 m (5 ft 11 in)
1,76 metros
1,83 metros
1,80 m (5 ft 11 in)[1]​
1,71 m (5 ft 7 in)
1,74 m (5 ft 9 in)
1,89 m (6 ft 2 in)
1,81 m (5 ft 11 in)
1,86 m (6 ft 1 in)
1,96 m
1,70 m (5 ft 7 in)[2]​
1,78 metros
1,82[1]​ metros
1,86 m (6 ft 1 in)
1,86 m (6 ft 1 in)
1,70 m (5 ft 7 in)
1,79 m (5 ft 10 in)
1,75 metros
1,91 m (6 ft 3 in).
1,95 m (6 ft 5 in)
1,87 m (6 ft 2 in)
1,92 metros
1,80[1]​ metros
1,83 metros
1.96 metros
1,92 metros
1,79 m (5 ft 10 in)
1,73 m (5 ft 8 in) metros
1,73 m (5 ft 8 in)
1,75 metros
1.77 metros
1,70 metros
1,80 metros
1,79 metros
1,78 m (5 ft 10 in)
1,85 m
1,71 m (5 ft 7 in)
1,80 m (5 ft 11 in)
1,73 metros
1,75 m (5 ft 9 in)
1,86 metros
1,90 m (6 ft 3 in)
1.74 metros
1,86 m (6 ft 1 in)
1,85 metros
1'94 metros
1,80 metros
1,88 metros
1,77 m (5 ft 10 in)
1,87 m (6 ft 2 in)
1,82 metros
1.77 metros
1,88 m (6 ft 2 in)
1,75 metros
1,70 m (5 ft 7 in)[1]​
1,80 m (5 ft 11 in)
1,82 m (6 ft 0 in)
1,91 m (6 ft 3 in)
1,69 metros
1,70 metros
1,80 m (5 ft 11 in)
1,78 m (5 ft 10 in).
1,84 m (6 ft 0 in)
1,81 m (5 ft 11 in)
1,90[2]​ metros
1.86 metros
1,77 metros

1,90 m (6 ft 3 in)
1.91 metros
1,75 m (5 ft 9 in)
1,80 m (5 ft 11 in)
1,82 metros
1.89 metros
1,84 metros
1,85 m (6 ft 1 in)
1,74 m (5 ft 9 in)
1.76metros
1,78 metros
1,80 m (5 ft 11 in)
1,85 m (6 ft 1 in)
1,80 m (5 ft 11 in)
1.72 metros
1,80 m (5 ft 11 in)
1,83 m (6 ft 0 in)
1,78 m (5 ft 10 in)
1,79 metros
1,80 m (5 ft 11 in)
1,79 m (5 ft 10 in)
1,74 m (5 ft 9 in)
1,78 metros
1,9
1,75 m
1,87 metros
1,85[1]​ metros
1,79 m (5 ft 10 in)
1,88 m (6 ft 2 in)
1,82 metros
1.76 m
1,76 m (5 ft 9 in)
1.80 metros
1,88 metros
1,77 metros
1,78 metros
1,85 m (6 ft 1 in) metros
1,87 m
1,10 m (3 ft 7 in)
1,94 m (6 ft 4 in)
1,70 metros
1,84 metros
1'84 metros
1,85 metros
1,8
1,70 metros
1,68 metros
1,86 m
1,79 m (5 ft 10 in)
1,72 metros
1,78 m (5 ft 10 in)
1,85 m (6 ft 1 in)
1.82 m
1,69 m (5 ft 7 in)
1,78 m (5 ft 10 in)
1,95 metros
1,90 m (6 ft 3 in)
1,93 m.
1,93 m (6 ft 4 in)
1,86 m (6 ft 1 in)
1,83 metros
1.78 metros
1,74 metros
1,79 m (5 ft 10 in)
1,74 m (5 ft 9 in)
1,84 m
1,84 metros
1,78 m (5 ft 10 in)
1,86 m (6 ft 1 in)
1,84 metros
1,71 m (5 ft 7 in)
1,78 m (5 ft 10 in)
1,83 metros
1,72 m (5 ft 8 in)
1,72 metros
1,79 metros
1,78 m
1,91 metros
1,88 m (6 ft 2 in)[1]​
1,77 m (5 ft 10 in)
1,88 m (6 ft 2 in)
1'88 metros
1,93 m (6 ft 4 in)
1.84 metros
1,84 m (6 ft 0 in)
1,80 m (5 ft 11 in)
1,72 metros
1,73 m (5 ft 8 in)
1,76 m (5 ft 9 in)
1,89 m (6 ft 2 in)
1,82 m (6 ft 0 in)
1,80 m (5 ft 11 in)
1,89 m (6 ft 2 in)
1,80 m (5 ft 11 in)
1,78 m (5 ft 10 in)
1,80 m (5 ft 11 in)[1]​
1,88 m (6 ft 2 in)
1,80 m (5 ft 11 in)
1,65 m (5 ft 5 in)
1,84 m (6 ft 0 in)
1,75 m (5 ft 9 in)
1,87 metros
1,78 m (5 ft 10 in)
1'76 metros
1.82 metros
1,92 m (6 ft 4 in)[1]​
1,73 metros
1,92 m (6 ft 4 in)
1,85 metros
1,68 metros
1,82 metros
1,82 metros
1,84 metros
1,84 metros
1,87 metros
1,89 metros
1,83 m (6 ft 0 in)
1,72 m (5 ft 8 in)
1,77 m (5 ft 10 in)

1,69 m (5 ft 7 in)
1,80 m (5 ft 11 in)

1,76 metros
1,81 metros
1,78 m (5 ft 10 in)
1,78 m (5 ft 10 in)
1,74 m (5 ft 9 in)
1,89 m (6 ft 2 in)
1,90 m (6 ft 3 in)
1,88 m (6 ft 2 in)
1,82 m (6 ft 0 in)
1,83 metros
1,93 metros
1,86 m (6 ft 1 in)
1,85 m (6 ft 1 in)
1,71 m (5 ft 7 in)
1,76 m (5 ft 9 in)
1,83 m (6 ft 0 in)
1,84 m (6 ft 0 in)
1,78 m (5 ft 10 in)
1,80 m (5 ft 11 in)
1,78 m (5 ft 10 in)
1,93 m (6 ft 4 in)
1,82 metros
1,84 m (6 ft 0 in)
1,83 m (6 ft 0 in)
1,84 m
1,67 m (5 ft 6 in)
1.81
1,80 m (5 ft 11 in)
1,75 metros
1,85 m (6 ft 1 in)
3
  • @rogarui not quite what you want but it's a good check to see if it works on the entirety of your data - does: df['Altura'].str.extract("^(?P<m>\d)[,.'](?P<cm>\d+)").astype(int) give you a dataframe ? Commented Dec 29, 2019 at 13:36
  • no sorry, if I copy this line and erro show in the console: ValueError: cannot convert float NaN to integer Commented Dec 29, 2019 at 13:44
  • Well - it works on the data you posted so... again... we're missing important information here Commented Dec 29, 2019 at 13:47

2 Answers 2

1

Maybe something like this can help. Idea is to get first 4 characters , replace comma with dot and cast to float

df  = df.assign(height = df.Altura.str.slice(0,4).str.replace(',','.').astype(float))

As a function it can look like this:

def height(df, column_name):

    df  = df.assign(height = df[column_name].str.slice(0,4).str.replace(',','.').astype(float))

    return df

And you can create height by invoking command:

height(df,'Altura')
Sign up to request clarification or add additional context in comments.

Comments

0

maybe you'd like to do this way:

import numpy as np
def convert_height(height_str) 
    if(height_str.isspace()):
            return np.nan
    else:
            height = height_str[:3].strip()
            if ',' in height:
                    height = height.replace(',','.')


            if "'" in height:
                    height = height.replace("'",".")


            if '`' in height:
                    height = height.replace('`','.')

    return float(height)

dataset['height_col'] = dataset['height_col'].apply(convert_height)

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.