gpt4 book ai didi

pandas - 使用 lambda 以字符串开头时替换 DataFrame 列中的值

转载 作者:行者123 更新时间:2023-12-04 02:44:56 29 4
gpt4 key购买 nike

我有一个数据框:

import pandas as pd
import numpy as np
x = {'Value': ['Test', 'XXX123', 'XXX456', 'Test']}
df = pd.DataFrame(x)

我想使用 lambda 用 np.nan 替换以 XXX 开头的值。

我尝试了很多替换、应用和映射的方法,我能做的最好的是 False, True, True, False。

下面的工作,但我想知道一个更好的方法来做到这一点,我认为应用,替换和 lambda 可能是一个更好的方法来做到这一点。
df.Value.loc[df.Value.str.startswith('XXX', na=False)] = np.nan

最佳答案

使用 apply 方法

In [80]: x = {'Value': ['Test', 'XXX123', 'XXX456', 'Test']}
In [81]: df = pd.DataFrame(x)
In [82]: df.Value.apply(lambda x: np.nan if x.startswith('XXX') else x)
Out[82]:
0 Test
1 NaN
2 NaN
3 Test
Name: Value, dtype: object
apply, where, loc enter image description here 的性能比较

关于pandas - 使用 lambda 以字符串开头时替换 DataFrame 列中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57614324/

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