gpt4 book ai didi

python - Pandas :用它们的总和替换一组行

转载 作者:行者123 更新时间:2023-11-28 22:53:59 25 4
gpt4 key购买 nike

我确信有一种巧妙的方法可以做到这一点,但还没有找到它。

假设我有一个数据框:

f = pd.DataFrame({'A':[1, 2, 3, 4], 'B': [10, 20, 30, 40], 'C':[100, 200, 300, 400]}).T

也就是说,行索引为 A、B 和 C。

现在假设我想获取 A 行和 B 行,并将它们替换为一行,即它们的总和;而且,此外,我想将给定的索引(比如“sum”)分配给该替换行(注意索引的顺序无关紧要)。

目前我要做的是:

f.append(pd.DataFrame(f.ix[['A','B']].sum()).T).drop(['A','B'])

后跟一些同样笨拙的东西来设置替换行的索引。不过,我很想知道是否有一种优雅的单行方式来完成这两个步骤?

最佳答案

这样做:

In [79]: f.append(f.loc[['A', 'B']].sum(), ignore_index=True).drop([0, 1]).set_index(Index(['C', 'sumAB'])
)
Out[79]:
0 1 2 3
C 100 200 300 400
sumAB 11 22 33 44

或者,您可以使用 Index.get_indexer 来实现更丑陋的单行代码:

In [96]: f.append(f.loc[['A', 'B']].sum(), ignore_index=True).drop(f.index.get_indexer(['A', 'B'])).set_index(Index(['C', 'sumAB']))
Out[96]:
0 1 2 3
C 100 200 300 400
sumAB 11 22 33 44

关于python - Pandas :用它们的总和替换一组行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18645023/

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