根据其他列的值设置列的值(熊猫)

数据挖掘 Python 熊猫 麻木的
2022-03-05 11:16:03

我最后一次使用 Python 是在不久前,所以有些东西已经消失了。

我有一个给定的数据集,有多个列。我想创建一个新列并根据其他列的多个值(文本或值)设置值。

所以在下面的例子中,c1 由 [a,a,b,b] 组成,c2 由 [a,b,a,b] 组成。现在我希望新列 c3 为 [1,2,3,4]

感谢所有帮助!

import pandas as pd
data = pd.read_excel('data')

data['c3'] = 0

for i in range(len(data.c3)):
    if data.c1[i] == a and data.c2[i] == a:
        data.c3[i] == 1
    elif data.c1[i] == a and data.c2[i] != a:
        data.c3[i] == 2
    elif data.c1[i] != a and data.c2[i] == a:
        data.c3[i] == 3
    elif data.c1[i] != a and data.c2[i] != a:
        data.c3[i] == 4```

1个回答

我会用apply. 它允许您按行或按列执行功能。查看 StackOverflow 上的这篇文章,它提供了很好的示例。

要点是:

  • 创建一个基于行创建所需值的函数
  • 用于apply创建包含结果的数据框
  • 如果您对结果感到满意,请将该数据框合并到您现有的数据框中