我试图在一个Pandasdf中为下面示例中的每个演员总结两列(在下面的示例季节和评级中)。然后,我希望每个参与者存储总计,并删除包含该参与者的任何其他行。在下面的示例中,保留或删除的“名称”并不重要。
例如,这是输入df:
import pandas as pd
series = [('Stranger Things', 3, 5, 'Millie'),
('Game of Thrones', 8, 8, 'Emilia'),
('La Casa De Papel', 4, 6, 'Sergio'),
('Westworld', 3, 7, 'Evan Rachel'),
('Cops', 3, 10, 'Millie'),
('La Casa De Papel', 4, 7, 'Sergio')]
# Create a DataFrame object
df = pd.DataFrame(series, columns=['Name', 'Seasons', 'Rating', 'Actor'])
所需的输出是(同样,保留或丢弃的“名称”示例中的哪一个并不重要,但当存在多个示例时,应保留其中一个):
'Stranger Things', 6, 15, 'Millie'
'Game of Thrones', 8, 8, 'Emilia'
'La Casa De Papel', 8, 13, 'Sergio'
'Westworld', 3, 7, 'Evan Rachel'
我已经研究了几种不同的方法,但如果不考虑解决挑战的最有效方法,就无法使任何方法发挥作用。这里的数据集大约是1.5k到3k行,我使用的是Python3.x。
1条答案
按热度按时间t5fffqht1#
按“参与者”分组,对“季节”和“评级”列使用总和聚合,对“名称”使用返回单个值的聚合(在本例中,我使用max),然后重置索引以将“参与者”列作为独立列重新排序,并按指定顺序对列重新排序:
产出: