遍历唯一值以比较熊猫中的组

时间:2020-11-08 09:25:48

标签: python pandas

我想使用循环比较不同组中的用户。我在下面提供了一个示例数据框,并进行了一次初始尝试(错误结束)。我想知道如何遍历数据框中的每个唯一值,然后为该用户选择有条件的行。

因此,在下面的示例尝试中,我在D列中获得了“之前”和“之后”的得分。如果我尝试获得之前/之后的比率,则遍历了set()个用户然后在iterrows()在用户== i的数据帧中找到一行时,将循环的每个迭代子集化。这没有用,但我希望它能使您了解我如何解决该问题。

我要说的是,我知道循环在Pandas中并不总是被视为最佳实践,但是在更大的数据框中,我想在组之间执行一系列不同的比较功能,并且能够在灵活的循环中完成优点,所以我希望有人可以通过这种方法(在每个唯一的用户身上循环)来帮助我。

[编辑]:预期的输出为(伪代码):

User: 1, ratio: 0.5
User: 2, ratio: 1.7

谢谢,让我知道是否可以使这个问题更清楚。

df = pd.DataFrame({"user": [1,2,1,2],
                   "B": ["before", "before", "after", "after"],
                   "D": [1, 5, 2, 3],
                   "E": [2, 4, 5, 5]})

for item, row in df.iterrows():
  s = set(df.user)
  for i in s:
    if row.user == i:
      row[row["B"] == 'before']['D'] / row[row["B"] == 'after']['D']

0 个答案:

没有答案