gpt4 book ai didi

python - Pandas 数据帧系列 : check if specific value exists

转载 作者:行者123 更新时间:2023-12-03 20:06:47 24 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Conditionally fill column values based on another columns value in pandas

(4 个回答)


去年关闭。




如果列表中的值存在于 pandas 数据框列之一中,我需要遍历列表并执行特定操作。我试图做如下,但低于错误

' 错误 : #Series 的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()。

import pandas as pd

people = {
'fname':['Alex','Jane','John'],
'age':[20,15,25],
'sal':[100,200,300]
}

df=pd.DataFrame(people)

check_list=['Alex','John']

for column in check_list:
if (column == df['fname']):
df['new_column']=df['sal']/df['age']
else:
df['new_column']=df['sal']

df

所需输出 :
fname   age sal new_column
Alex 20 100 5 <<-- sal/age
Jane 15 200 200 <<-- sal as it is
John 25 300 12 <<-- sal/age

最佳答案

使用 np.where.isin检查列是否包含特定值。

df['new_column'] = np.where(
df['fname'].isin(['Alex','John']),
df['sal']/df['age'],
df['sal']
)

print(df)

fname age sal new_column
0 Alex 20 100 5.0
1 Jane 15 200 200.0
2 John 25 300 12.0

纯 Pandas 版本。
df['new_column'] = (df['sal']/df['age']).where(
df['fname'].isin(['Alex','John']),other=df['sal'])
print(df)
fname age sal new_col
0 Alex 20 100 5.0
1 Jane 15 200 200.0
2 John 25 300 12.0

关于python - Pandas 数据帧系列 : check if specific value exists,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61916648/

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