各位版友好
不才小弟這邊有個問題想詢問,還盼望版友能指點,先謝謝
我有一個dataframe,其中,我想針對某一欄位的文字格式的數字做處理
該欄的值都是小數點1位,那我想處理的方式如下:
若小數點位的數字是0,那我希望該值拿掉小數點的部分,如:1.0 改為 1
而小數點位的數字非0,則保持原樣,如:0.6 仍為 0.6
我原先的想法是說,都是文字格式,那我就將該值若出現'.0'的話就取代為''
因此,我的寫法是使用replace('.0' , '')
就先附上一個範例程式碼
import pandas as pd
data=['123.0' , '0.1', '10.1' , '10.0']
df=pd.DataFrame(data=data, columns=['Test'])
df['Test'].str.replace('.0', '')
可是replace寫法會讓我的df['Test']
變成 '123' 、 '0.1' 、 '.1' 、 ''
目前看起來是10的部分都會消失....
所以想詢問版友兩個問題
1.上述提到的小數位為0的移除問題有甚麼樣的簡單解決方式
(我知道可以用for loop去解決,但只是在想有沒有更簡單的方式)
2.因為想用簡單一點的方式,才有replace的這個想法,但為什麼會出現這種奇怪的結果
以上兩個問題,還麻煩版友了,謝謝