gpt4 book ai didi

python - 遍历 Pandas 数据框中的两列

转载 作者:太空宇宙 更新时间:2023-11-04 03:30:37 25 4
gpt4 key购买 nike

我正在尝试遍历数据框中的两列,如果客户一直续签契约(Contract),我会尝试通过查找今年的契约(Contract)(data.Year_Season == 2014)创建一个虚拟列用于 statsmodel 分析-2015) 并且客户续订了不止一次 (data.Rank_ouput > 1)。请看下面的代码:

def make_always_renewed_column(data):
for i, row in data.iterrows():
if row.Year_Season and row.Rank_output > 1:
return 1
else:
return 0


data['alwaysRenewed'] = make_always_renewed_column(data)

但是当我查看返回的内容时:

data.groupby(['alwaysRenewed'])[['lead_id']].count()

新列中的所有行都返回 0。

我在满足 .iloc 条件的一行上尝试了此操作,它返回了 True

有什么想法吗?

更新

试了没用:

def make_always_renewed_column(data):
for row in data.itertuples():
if row[8] == '2014-2015' and row[10] > 1:
return 1
else:
return 0

最佳答案

执行这些类型的测试无需遍历各个行。 pandas 列上的 +-== 等操作是矢量化,即它们会自动应用于列的每个元素。您的测试应如下所示:

data['alwaysRenewed'] = (data['Year_Season'] == '2014-2015') & (data['Rank_output'] > 1)

这将创建一个 bool 列,即 True/False 值的列。出于总和、均值等目的,这些将像 0/1 一样,但您可以使用以下方法显式转换为 0/1:

data['alwaysRenewed'] = data['alwaysRenewed'].astype(int)

关于python - 遍历 Pandas 数据框中的两列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31237715/

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