我正在做一个项目,其中“ORIGINAL_VALUE”列填充了数据。在某些情况下,服务器会响应一个不是数字的错误。
通过执行以下操作,我能够检测何时出现这些错误之一。
try:
df['ORIGINAL_VALUE'] = pd.to_numeric(df['ORIGINAL_VALUE'])
except ValueError:
# I want to register on my log the message recived on ORIGINAL VALUE
log.exception("")
Run Code Online (Sandbox Code Playgroud)
例如:
df['ORIGINAL_VALUE'] contains:
1.1
2.0
3.3
'Wrong date format'
5.0
6.0
Run Code Online (Sandbox Code Playgroud)
我想通过选择无法转换为浮动的行来注册发现的错误。
添加参数errors='coerce'来to_numeric为转换问题的值NaNS,因此对于检查使用Series.isna与boolean indexing-然后在必要时转换为列表,并加入到字符串:
try:
df['ORIGINAL_VALUE'] = pd.to_numeric(df['ORIGINAL_VALUE'])
except ValueError:
# I want to register on my log the message recived on ORIGINAL VALUE
mask = pd.to_numeric(df['ORIGINAL_VALUE'], errors='coerce').isna()
#if possible missing values
#mask = pd.to_numeric(df['ORIGINAL_VALUE'].fillna('0'), errors='coerce').isna()
L = df.loc[mask, 'ORIGINAL_VALUE'].tolist()
print ("Not converted values are: " + ", ".join(L))
#Not converted values are: Wrong date format
log.exception("Not converted values are: " + ", ".join(L))
Run Code Online (Sandbox Code Playgroud)
如果需要单独日志中的所有有问题的值:
try:
df['ORIGINAL_VALUE'] = pd.to_numeric(df['ORIGINAL_VALUE'])
except ValueError:
# I want to register on my log the message recived on ORIGINAL VALUE
mask = pd.to_numeric(df['ORIGINAL_VALUE'].fillna('0'), errors='coerce').isna()
L = df.loc[mask, 'ORIGINAL_VALUE'].tolist()
for val in L:
print (f"Not converted values are: {val}")
log.exception(f"Not converted values are: {val}")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2238 次 |
| 最近记录: |