以下是一个示例代码,实现了按照某一列分组,然后检查行是否匹配,并计算该值的连续出现次数的功能:
import pandas as pd
# 创建一个示例数据集
data = {'Group': ['A', 'A', 'A', 'B', 'B', 'B', 'B', 'C', 'C', 'C'],
'Value': [1, 1, 2, 3, 3, 3, 4, 5, 5, 5]}
df = pd.DataFrame(data)
# 按照 Group 列进行分组
grouped = df.groupby('Group')
# 遍历每个分组
for group, group_df in grouped:
value_count = 0 # 连续出现次数
# 遍历每一行
for i in range(len(group_df)):
# 检查当前行与前一行的值是否匹配
if i > 0 and group_df.iloc[i]['Value'] == group_df.iloc[i-1]['Value']:
value_count += 1
else:
value_count = 1
# 输出结果
print(f"Group: {group}, Value: {group_df.iloc[i]['Value']}, 连续出现次数: {value_count}")
这段代码首先创建了一个示例数据集,并按照 Group 列进行分组。然后,通过遍历每个分组和每一行,检查当前行与前一行的值是否匹配,并计算连续出现次数。最后,输出每一行的分组、值和连续出现次数。
在这个示例中,数据集如下:
Group Value
0 A 1
1 A 1
2 A 2
3 B 3
4 B 3
5 B 3
6 B 4
7 C 5
8 C 5
9 C 5
运行代码后的输出结果如下:
Group: A, Value: 1, 连续出现次数: 1
Group: A, Value: 1, 连续出现次数: 2
Group: A, Value: 2, 连续出现次数: 1
Group: B, Value: 3, 连续出现次数: 1
Group: B, Value: 3, 连续出现次数: 2
Group: B, Value: 3, 连续出现次数: 3
Group: B, Value: 4, 连续出现次数: 1
Group: C, Value: 5, 连续出现次数: 1
Group: C, Value: 5, 连续出现次数: 2
Group: C, Value: 5, 连续出现次数: 3