我想对我的 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
yyyllmsg1#
您可以设置一个NaN,以防它失败,然后删除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
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()
2条答案
按热度按时间yyyllmsg1#
您可以设置一个
NaN
,以防它失败,然后删除NaN
jecbmhm32#
该解也可表示为: