我有一個資料框,其中有一列是物件。當我檢查空值時,資料集說它沒有空值,但有一行有一個“”表示年齡。我想將列從 object 轉換為 int,但是 1 值讓我很難過。
這是我嘗試過的:
df['perpetrator_age'].replace('', '0', regex=True)
df.head()
這不會取代價值。
df['perpetrator_age'].astype(int)
ValueError: invalid literal for int() with base 10: ' '
經過一番搜索,我想也許可以先嘗試將其轉換為浮點數,但是:
df['perpetrator_age'].astype(float).astype(int)
ValueError: could not convert string to float: ''
任何幫助表示贊賞!
uj5u.com熱心網友回復:
正如我在評論中提到的那樣,我猜缺少該評估。
這是一個帶有''字串的非常基本的示例。
import pandas as pd
df = pd.DataFrame({'a':[1,2,3,'',4,5]})
df['a'].replace('',0, inplace=True)
# df['a'] = df['a'].replace('',0) as an equivilant
>>> df.head()
a
0 1
1 2
2 3
3 0
4 4
5 5
uj5u.com熱心網友回復:
嘗試:
df['perpetrator_age'].astype('int')
不要忘記''
uj5u.com熱心網友回復:
根據此錯誤訊息ValueError: invalid literal for int() with base 10: ' ',您遇到的問題是有一個帶有一個空格的欄位,而不是一個空字串。這就是替換失敗的原因。如果你運行df['perpetrator_age'].replace(' ', '0', regex=True)這將作業。
uj5u.com熱心網友回復:
好吧,朋友們,事實證明一個簡單的 inplace=True 解決了我所有的問題!
df['perpetrator_age'].replace(' ', 0, regex=False, inplace=True)
df['perpetrator_age'].astype(int)
謝謝你們每一個人的幫助 :)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/461720.html
