【发布时间】:2018-06-20 09:01:17
【问题描述】:
我有一个如下所示的 DataFrame:
DF1 =
sID token A B C D
10 I am a f g h
10 here a g g h
10 whats a h g h
10 going a o g h
10 on a j g h
10 . a f g h
11 I am a f g h
11 foo bar a f g h
12 You are a f g h
...
列 (A-D) 与此任务无关。有没有办法在 DataFrame 中添加一个计数单词(由空格分隔)的计数器列。该列应该开始计算每个sID 的令牌数量。这意味着每次sID 的值更改时都会重置。
通常我只会使用DF.groupby("sID").cumcount(),但这只会计算每个sID 的行数。
结果应该是这样的:
DF2 =
sID token A B C D Counter
10 I am a f g h 0 1
10 here a g g h 2
10 whats a h g h 3
10 going a o g h 4
10 on a j g h 5
10 . a f g h 6
11 I am a f g h 0 1
11 foo bar a f g h 2 3
12 You are a f g h 0 1
...
【问题讨论】:
-
为什么是 foo 2 和 bar 3?我认为这里是 2,而在您的示例中是 3。你有什么尝试吗?为什么会失败?
-
@Mr.T 我认为计数器会根据
sID重新启动。因此,对于sID11,我们有 'I' (0)、'am' (1)、'foo' (2) 和 'bar' (3)。 -
我不太明白你想要什么
-
更新了原帖。
标签: python pandas dataframe counter