1
House Number Street First Name Surname Age Relationship to Head of House Marital Status Gender Occupation Infirmity Religion
0 1 Smith Radial Grace Patel 46 Head Widowed Female Petroleum engineer None Catholic
1 1 Smith Radial Ian Nixon 24 Lodger Single Male Publishing rights manager None Christian
2 2 Smith Radial Frederick Read 87 Head Divorced Male Retired TEFL teacher None Catholic
3 3 Smith Radial Daniel Adams 58 Head Divorced Male Therapist, music None Catholic
4 3 Smith Radial Matthew Hall 13 Grandson NaN Male Student None NaN
5 3 Smith Radial Steven Fletcher 9 Grandson NaN Male Student None NaN
6 4 Smith Radial Alison Jenkins 38 Head Single Female Physiotherapist None Catholic
7 4 Smith Radial Kelly Jenkins 12 Daughter NaN Female Student None NaN
8 5 Smith Radial Kim Browne 69 Head Married Female Retired Estate manager/land agent None Christian
9 5 Smith Radial Oliver Browne 69 Husband Married Male Retired Merchandiser, retail None None

I have a dataset which you can see up the side of the question. I want to convert all these datasets to integers and strings from objects.

df = pd.read_csv('user-data.csv')
df[['Street','Relationship to Head of House','Marital Status','Gender','Occupation','Infirmity','Religion']] = df[['Street','Relationship to Head of House','Marital Status','Gender','Occupation','Infirmity','Religion']].astype('str') 
df[['House Number','Age']] = df[['House Number','Age']].astype('int') 

I tried two different ways but all the dataset was gone after that operations.

df = df['Street'].astype(str)
df = df['Relationship to Head of House'].astype(str)
df = df['Marital Status'].astype(str)
df = df['Gender'].astype(str)
df = df['Occupation'].astype(str)
df = df['Infirmity'].astype(str)
df = df['Religion'].astype(str)
df = df['Gender'].astype(str)

Could you help me to convert columns? Thanks

I still got the same types as:

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 10610 entries, 0 to 10609
Data columns (total 11 columns):
 #   Column                         Non-Null Count  Dtype 
---  ------                         --------------  ----- 
 0   House Number                   10610 non-null  int64 
 1   Street                         10610 non-null  object
 2   First Name                     10610 non-null  object
 3   Surname                        10610 non-null  object
 4   Age                            10610 non-null  object
 5   Relationship to Head of House  10610 non-null  object
 6   Marital Status                 7995 non-null   object
 7   Gender                         10610 non-null  object
 8   Occupation                     10610 non-null  object
 9   Infirmity                      10610 non-null  object
 10  Religion                       7928 non-null   object
dtypes: int64(1), object(10)
memory usage: 911.9+ KB

Object instead of int or string, could you help me to fix that?

2
  • String columns are of type object, this is normal Commented Nov 24, 2021 at 21:50
  • I taught it should be written string instead of object Commented Nov 24, 2021 at 21:52

1 Answer 1

1

you need the df['Street']= df['Street'].astype(str) on the left side of the assignment

df['Street']= df['Street'].astype(str)
df['Relationship to Head of House'] = df['Relationship to Head of House'].astype(str)
df['Marital Status'] = df['Marital Status'].astype(str)
df['Gender'] = df['Gender'].astype(str)
df['Occupation'] = df['Occupation'].astype(str)
df['Infirmity'] = df['Infirmity'].astype(str)
df['Religion'] = df['Religion'].astype(str)
df['Gender'] = df['Gender'].astype(str)

or

columns=df.columns
for column in columns:
    df[column]=df[column].astype(str)

or

in the pd.read_csv you can set the dtypes=[str,str,...] for each column

or

 numeric_df=df.select_dtypes(exclude='object')

 returns the a dataframe with non-numeric columns

 columns=numeric_df.columns
Sign up to request clarification or add additional context in comments.

3 Comments

Can I do that for all the columns?
yes sir all columns
Can u check the new edited question?

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.