chippycentra
chippycentra

Reputation: 879

Remove decimal of columns in pandas data frame

I have a dataframe such as :

query   qstart  qend    name    number  strand
A       2.0     1064.0  None    0       +
B       2.0     1076.0  None    0       +
C       2.0     1064.0  None    0       +
D       0.0     741.0   None    0       +

and I would like to remove all decimals and get :

query   qstart  qend    name    number  strand
A       2       1064    None    0       +
B       2       1064    None    0       +
C       2       1064    None    0       +
D       0       741     None    0       +

I tried:

df['qstart']= round(df['qstart'])
df['qend']= round(df['qend'])

but it does not work...

Upvotes: 4

Views: 15809

Answers (2)

Ludo Schmidt
Ludo Schmidt

Reputation: 1403

df.qend = df.qend.apply(int) # round instead of int is you prefer to round
print (df)

  query  qstart  qend  name  number strand
0     A     2.0  1064  None       0      +
1     B     2.0  1076  None       0      +
2     C     2.0  1064  None       0      +
3     D     0.0   741  None       0      +   

Upvotes: 0

anky
anky

Reputation: 75080

Try the below:

m=(df.dtypes=='float')
df.loc[:,m]=df.loc[:,m].astype(int)
print(df)

  query  qstart  qend  name  number strand
0     A       2  1064  None       0      +
1     B       2  1076  None       0      +
2     C       2  1064  None       0      +
3     D       0   741  None       0      +

Upvotes: 7

Related Questions