python 传递并删 debugging 误ID

svgewumm  于 2023-01-01  发布在  Python
关注(0)|答案(2)|浏览(92)

我想对我的 Dataframe 应用一个函数,删除出错的行/id。我还想避免for循环,因为对于大型 Dataframe 来说,for循环有点慢。一个示例 Dataframe 可能如下所示:

d = {'a': [1, "wrong_element"], 'b': [1, 2]}
df = pd.DataFrame(data=d, index=[1, 2])

print(df)

输出:
x一个一个一个一个x一个一个二个x
期望输出:

a       b
1       -1       1
yyyllmsg

yyyllmsg1#

您可以设置一个NaN,以防它失败,然后删除NaN

def operation(value):
    try:
        return value - 2
    except:
        return np.nan
df = pd.DataFrame({'a': [1, "wrong_element"], 'b': [0, 2]}, [1, 2])
df['a'] = df['a'].apply(operation)
df = df.dropna()
a  b
1 -1.0  0
jecbmhm3

jecbmhm32#

该解也可表示为:

df = pd.DataFrame({'a': [1, "wrong_element"], 'b': [0, 2]}, [1, 2])

df["a"] = df["a"].replace("wrong_element", np.nan).sub(2)
df.dropna()

相关问题