python - Pandas 如何针对以下场景进行 groupby
问题描述
我在尝试理解下面的 group by 代码片段时遇到问题。我试图了解 df.groupby(L).sum() 的计算是如何发生的。
这是我从 url enter link description here获得的代码片段。谢谢你的帮助。
解决方案
行按列表的值分组,因为列表的长度与 中的行数相同DataFrame
,这意味着:
rng = np.random.RandomState(0)
df = pd.DataFrame({'key': ['A', 'B', 'C', 'A', 'B', 'C'],
'data1': range(6),
'data2': rng.randint(0, 10, 6)},
columns = ['key', 'data1', 'data2'])
L = [0, 1, 0, 1, 2, 0]
print (df)
key data1 data2
0 A 0 5 <-0
1 B 1 0 <-1
2 C 2 3 <-0
3 A 3 3 <-1
4 B 4 7 <-2
5 C 5 9 <-0
所以:
data1 for 0 is 0 + 2 + 5 = 7
data2 for 0 is 5 + 3 + 9 = 17
data1 for 1 is 1 + 3 = 4
data2 for 1 is 0 + 3 = 3
data1 for 2 is 4
data2 for 2 is 7
输出:
print(df.groupby(L).sum())
data1 data2
0 7 17
1 4 3
2 4 7
省略了关键列,因为自动排除了“讨厌”列。
推荐阅读
- node.js - 我应该捆绑我的 Express 服务器代码以在捆绑包上运行节点,而不是我未捆绑的 app.js 需要大量需求吗?
- python - Selenium 仅在从 AWS lambda 函数运行时返回“NoSuchElementException”(尽管路径有效)
- excel - Wininet.dll 在提取 cookie 时崩溃 excel 64 位
- android - java.lang.ExceptionInInitializerError:错误android工作室?
- python - 在计算频谱图之前分割音频信号与分割整个信号的频谱图之间的不一致
- r - 将id标签添加到ggplot中限制线以上的点
- javascript - 如何使用 jQuery 对多个表进行排序
- reactjs - 打字稿字符串枚举类型“字符串”不可分配给类型
- java - 如何从方法返回数组
- php - Cake php 2.10 在控制器操作中使用 http 基本身份验证登录