Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Python - Transform a column witth the first 2 elements

I've this code:

import pandas as pd
data = pd.read_csv('data.csv', header=None)
print((data[[7]].str[:2]))

My data is like this:

1,a,0,11,1,11.09,aa, 0 dollars
1,b,0,11,1,17.38,bb, 1 dollar
3,c,0,11,1,24.68,cdd, 12 dollares

And I'm trying to transform my dataset into:

1,a,0,11,1,11.09,aa, 0
1,b,0,11,1,17.38,bb, 1
3,c,0,11,1,24.68,cdd, 12

When I run my code I'm getting this error:

builtins.AttributeError: 'DataFrame' object has no attribute 'str'

How can I transform my data into the data I want?

Thanks!

like image 605
John_Rodgers Avatar asked Mar 05 '26 11:03

John_Rodgers


1 Answers

You need remove one [] for Series, here double [] create one column DataFrame:

data[7] = data[7].str[:2]
print (data)
   0  1  2   3  4      5    6   7
0  1  a  0  11  1  11.09   aa   0
1  1  b  0  11  1  17.38   bb   1
2  3  c  0  11  1  24.68  cdd   1

But if want extract numeric value use extractand cast to integers:

data[7] = data[7].str.extract('(\d+)', expand=False).astype(int)
print (data)
   0  1  2   3  4      5    6   7
0  1  a  0  11  1  11.09   aa   0
1  1  b  0  11  1  17.38   bb   1
2  3  c  0  11  1  24.68  cdd  12
like image 168
jezrael Avatar answered Mar 08 '26 00:03

jezrael



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!