gpt4 book ai didi

python-3.x - Pandas 选择无法转换为 int 或 float 的行

转载 作者:行者123 更新时间:2023-12-04 02:48:25 24 4
gpt4 key购买 nike

我正在做一个项目,其中“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("")

例如:
df['ORIGINAL_VALUE'] contains:
1.1
2.0
3.3
'Wrong date format'
5.0
6.0

我想通过选择无法转换为 float 的行来注册发现的错误。

最佳答案

添加参数 errors='coerce' to_numeric 用于将有问题的值转换为 NaN s,因此用于检查 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))

如果需要单独日志中的所有有问题的值:
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}")

关于python-3.x - Pandas 选择无法转换为 int 或 float 的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56251107/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com