下面是一个示例代码,演示如何按数据帧中的行号范围进行分组:
import pandas as pd
# 创建示例数据帧
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve', 'Frank', 'Grace', 'Henry'],
'Age': [25, 30, 35, 40, 45, 50, 55, 60],
'Group': ['A', 'B', 'A', 'B', 'A', 'B', 'A', 'B']}
df = pd.DataFrame(data)
# 定义行号范围
ranges = [(0, 2), (2, 5), (5, 8)]
# 创建新的分组列
df['GroupID'] = None
# 分组并为每个分组分配GroupID
for i, (start, end) in enumerate(ranges):
df.loc[start:end, 'GroupID'] = i
print(df)
输出结果:
Name Age Group GroupID
0 Alice 25 A 0
1 Bob 30 B 0
2 Charlie 35 A 1
3 David 40 B 1
4 Eve 45 A 1
5 Frank 50 B 2
6 Grace 55 A 2
7 Henry 60 B 2
在这个示例中,我们首先创建了一个包含姓名、年龄和组别的数据帧。然后,我们定义了行号范围的列表,每个元素都是一个元组,表示起始行号和结束行号。接下来,我们创建了一个新的名为"GroupID"的列,并将其初始化为None。然后,我们使用for循环遍历行号范围列表,并使用.loc方法为每个范围内的行分配一个相应的GroupID。最后,我们打印出结果数据帧。