在尝试自学Pandas的同时使用不同的数据帧,这让我感到沮丧,这似乎缺乏编程理解能力,但是有人可以帮忙吗?
考虑以下df:
ID Name Week
1 Matthew 1751
1 Matthew 1751
1 Matthew 1751
2 Jon 1751
2 Jon 1751
2 Jon 1751
2 Jon 1751
3 Lisa 1751
3 Lisa 1751
3 Lisa 1751
3 Lisa 1751
3 Lisa 1751
3 Lisa 1751
3 Lisa 1751
我要在此执行的操作是为索引中每个出现的位置的周数加+1,但仅在名称与自身相匹配的地方。
ID Name Week
1 Matthew 1751
1 Matthew 1752
1 Matthew 1753
2 Jon 1751
2 Jon 1752
2 Jon 1753
2 Jon 1754
3 Lisa 1751
3 Lisa 1752
3 Lisa 1753
3 Lisa 1754
3 Lisa 1755
3 Lisa 1756
3 Lisa 1757
我尝试了一个简单的for循环
但是它只是将索引的长度增加到数字,我也尝试过
for n in df.Name:
print(len(n))
仅返回每个字符串的长度(正确),添加索引仅返回索引的长度,即出现n的次数。
我缺少基本的东西吗?我应该先创建一个列表,然后将其传递给df吗?答案 0 :(得分:6)
df['Week'] = df.Week.add(df.groupby('Name').cumcount())
ID Name Week
0 1 Matthew 1751
1 1 Matthew 1752
2 1 Matthew 1753
3 2 Jon 1751
4 2 Jon 1752
5 2 Jon 1753
6 2 Jon 1754
7 3 Lisa 1751
8 3 Lisa 1752
9 3 Lisa 1753
10 3 Lisa 1754
11 3 Lisa 1755
12 3 Lisa 1756
13 3 Lisa 1757