我這里有一些示例資料。代碼應該做的是洗掉里面的任何單詞。但是,有時 mongo 會拋出 Null 值或空字串。
import pandas as pd
import numpy as np
df = pd.DataFrame(np.array([[1],[4],[25],['asd123'],['asdf1']]),
columns=['account'])
df["account"] = (
df["account"]
.fillna((-1), inplace=False)).astype("str").str.replace(r"[^0-9]", "", regex=True).astype('int64')
我嘗試用下面的整數替換它,但 Python 一直給我一個錯誤ValueError: invalid literal for int() with base 10: ''
import pandas as pd
import numpy as np
df = pd.DataFrame(np.array([[1],[4],[25],['asd123'],['']]),
columns=['account'])
np.where(df.applymap(lambda x: x == ''))
df.replace('', '1')
df["account"] = (
df["account"]
.fillna((-1), inplace=False)).astype("str").str.replace(r"[^0-9]", "", regex=True).astype('int64')
df
我也嘗試過,但它也不起作用:
import pandas as pd
import numpy as np
df = pd.DataFrame(np.array([[1],[4],[25],['asd123'],['']]),
columns=['agent_account'])
np.where(df.applymap(lambda x: x == ''))
df.replace('','abc1',regex = True)
任何幫助表示贊賞。謝謝!
uj5u.com熱心網友回復:
因為您正在嘗試將 "" 轉換為整數。獲取資料的時候把“”刪掉就行了df.drop(df[df.account == ""].index, inplace=True)
這將是您修改后的代碼
import pandas as pd
import numpy as np
df = pd.DataFrame(np.array([[1],[4],[25],['asd123'],['']]),
columns=['account'])
np.where(df.applymap(lambda x: x == ''))
df.drop(df[df.account == ""].index, inplace=True)
df["account"] = (
df["account"]
.fillna((-1), inplace=False)).astype("str").str.replace(r"[^0-9]", "", regex=True).astype('int64')
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/522346.html
標籤:Python细绳数据框