gpt4 book ai didi

python - 如果满足条件,则使用自定义函数应用于 df 列

转载 作者:行者123 更新时间:2023-12-04 10:21:19 25 4
gpt4 key购买 nike

我有一个像

A   B
1 2
2 -
5 -
4 5

我想应用一个函数 func()在 B 列上(但如果 - 被传递,该函数会给出错误)。我无法修改 func()功能。我需要类似的东西:
df['B']=df['B'].apply(func)仅当值不等于 -

最佳答案

如果满足条件,则使用自定义函数应用于 df 列:

def func(a): 
return a + 10
#new pandas dataframe with four rows and 2 columns. 3rd row having a nan
df = pd.DataFrame([[1, 2], [3, 4], [5, pd.np.nan], [7, 8]], columns=["A", "B"])
print(df)
#coerce column named B to numeric
s = pd.to_numeric(df['B'], errors='coerce')
#a mask has true for numeric rows, false for non numeric rows
mask = s.notna()
#mask
print(mask)
#run function named func across the B column
df.loc[mask, 'B'] = s[mask].apply(func)
print(df)

其中打印:
   A    B
0 1 2.0
1 3 4.0
2 5 NaN
3 7 8.0

0 True
1 True
2 False
3 True

A B
0 1 12.0
1 3 14.0
2 5 NaN
3 7 18.0

关于python - 如果满足条件,则使用自定义函数应用于 df 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60832597/

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