Back

Explore Courses Blog Tutorials Interview Questions
0 votes
1 view
in Data Science by (50.2k points)

I use Pandas 'ver 0.12.0' with Python 2.7 and have a dataframe as below:

df = pd.DataFrame({'id' : [123,512,'zhub1', 12354.3, 129, 753, 295, 610],

                    'colour': ['black', 'white','white','white',

                            'black', 'black', 'white', 'white'],

                    'shape': ['round', 'triangular', 'triangular','triangular','square',

                                        'triangular','round','triangular']

                    },  columns= ['id','colour', 'shape'])

The id Series consists of some integers and strings. Its dtype by default is an object. I want to convert all contents of id to strings. I tried astype(str), which produces the output below.

df['id'].astype(str)

0    1

1    5

2    z

3    1

4    1

5    7

6    2

7    6

1) How can I convert all elements of id to String?

2) I will eventually use id for indexing for dataframes. Would having String indices in a dataframe slow things down, compared to having an integer index?

1 Answer

0 votes
by (108k points)

The issue was related to the Python version (2.7.), You must assign it, like this:-

df['id']= df['id'].astype(str)

for example: 

df['id'].astype(basestring)

0        123

1        512

2      zhub1

3    12354.3

4        129

5        753

6        295

7        610

Name: id, dtype: object

Related questions

0 votes
1 answer
0 votes
1 answer
0 votes
1 answer
0 votes
1 answer

Browse Categories

...