我正在使用資料集;下面你可以看到一個小例子。
import pandas as pd
import numpy as np
data = {
'id':['9.','09', 9],
}
df = pd.DataFrame(data, columns = [
'id',])
df['id'] = df['id'].replace(".","")
df
在這個資料集中,一個數字以三種方式寫入,例如'9.','09', 9
現在我希望所有這些數字都以相同的方式寫入,例如 9,沒有 . 或 0
我嘗試使用這行代碼,但它不起作用
df['id'] = df['id'].replace(".","")
那么有人可以幫我解決這個問題嗎?
uj5u.com熱心網友回復:
你可以把它們全部變成雙精度然后變成整數
df['id'].astype('double').astype(int)
但這對于超過雙精度的 53 位有效數字的大數可能是個問題。如果錯誤的句點總是在字串的末尾,你可以這樣做
df['id'].astype(str).str.strip('.').astype(int)
甚至是一個正則運算式,它把點加上它右邊的任何東西。
uj5u.com熱心網友回復:
嘗試這個:
pd.to_numeric(df['id'])
0 9.0
1 9.0
2 9.0
Name: id, dtype: float64
詮釋:
pd.to_numeric(df['id']).astype(int)
0 9
1 9
2 9
Name: id, dtype: int64
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/503883.html
上一篇:win11常用快捷鍵
