【发布时间】:2021-11-24 02:03:09
【问题描述】:
我想创建一个带有 for 循环的函数,该循环遍历一个小数据框,并根据设置的条件添加一个具有不同值的新列。
我已经尝试了以下方法,但它为所有行返回了我的第一个 if 语句的输出(它为每一行打印“Top Buyers”):
def CustomerSegmentClassifier(df):
for i, row in df.iterrows():
if (df['Recency'] <= 200).any() or (df['Frequency'] >= 20).any():
df.at[i,'Cluster Name'] = 'Top Buyers'
elif (df['Recency'].between(201, 750)).any() or (df['Frequency'].between(5,19)).any():
df.at[i,'Cluster Name'] = 'Casual Buyers'
else:
df.at[i,'Cluster Name'] = 'Churned Buyers'
return df
Image of Output from CustomerSegmentClassifer Function
任何帮助将不胜感激。
【问题讨论】:
-
澄清一下,你用的是熊猫吗?
标签: python dataframe for-loop if-statement