【发布时间】:2013-07-08 06:07:41
【问题描述】:
这是我的question 的扩展。
为了更简单让我们假设我有一个如下的熊猫数据框。
df = pd.DataFrame([[1.1, 1.1, 2.5, 2.6, 2.5, 3.4,2.6,2.6,3.4], list('AAABBBBAB'), [1.1, 1.7, 2.5, 2.6, 3.3, 3.8,4.0,4.2,4.3]]).T
df.columns = ['col1', 'col2','col3']
数据框:
col1 col2 col3
0 1.1 A 1.1
1 1.1 A 1.7
2 2.5 A 2.5
3 2.6 B 2.6
4 2.5 B 3.3
5 3.4 B 3.8
6 2.6 B 4
7 2.6 A 4.2
8 3.4 B 4.3
我想根据一些条件对其进行分组。逻辑是基于 col1 col2 的值和 col3 的累积差异:
- 转到 col1 并找到相同值的其他匹配项。
- 在我的例子中,col1 的第一个值是 '1.1',它们在 row2 的值也是相同的。
- 然后检查col2值,如果相似,则得到col 3的累积差异。
- 如果累积差异大于 0.5,则将此标记为新会话。
- 如果 col1 值相同但 col2 值不同,则将它们标记为新会话
预期输出:
col1 col2 col3 session
0 1.1 A 1.1 0
1 1.1 A 1.7 1
2 2.5 A 2.5 2
3 2.6 B 2.6 4
4 2.5 B 3.3 3
5 3.4 B 3.8 7
6 2.6 B 4 5
7 2.6 A 4.2 6
8 3.4 B 4.3 7
【问题讨论】:
-
@unutbu : 应该是..:)