在数据框的一列中,我对数据框的每一行都有以下得分:
[{'score': 100, 'bonus': 10}, {'score': 60, 'bonus': 0}]
[{'score': 80, 'bonus': 20}, {'score': 90, 'bonus': 30}]
输出
输出将是两行,分别用于更改得分和奖金。因此,第一行的df.delta_score = -40和df.delta_bonus = -10,第二行的df.delta_score = 10和df.delta_bonus = 10。
[{'score': 100, 'bonus': 10}, {'score': 60, 'bonus': 0}, -40, -10]
[{'score': 100, 'bonus': 10}, {'score': 60, 'bonus': 0}, 10, 10]
我想计算每个人(行)的得分和奖金的值变化,并生成具有结果值的新列。我对这种数据类型非常困惑,因为它似乎是字典列表,但是由于每个字典都有相同的键,因此我想使用运算符来计算差异。任何帮助将不胜感激。
答案 0 :(得分:0)
我们可以做explode
然后得到数据框
s = df['Col'].explode()
calcu = pd.DataFrame(s.tolist(), index=s.index)
calcu
Out[170]:
score bonus
0 100 10
0 60 0
1 80 20
1 90 30
在此之后您可以做
calcu.groupby(level=0)...(calculation follow by groupby)
答案 1 :(得分:0)
我们将简单地创建两个新列gsutil ls -l gs://my-bucket/some-prefix/**
和Bonus
。您可以将列表理解与Score
结合使用,以根据键.get()
和bonus
检索值。然后,通过订阅score
并减去[1]
[0]