以下是一个解决方法的示例代码:
import pandas as pd
# 创建示例数据
data = {'组别': ['A', 'A', 'B', 'B', 'C', 'C'],
'数值': [1, 2, 3, 4, 5, 6]}
df = pd.DataFrame(data)
# 创建新列,初始值为False
df['复制控制行'] = False
# 按组复制控制行
for group in df['组别'].unique():
# 找到当前组的控制行索引
control_row_idx = df.loc[df['组别'] == group, '数值'].idxmin()
# 将对应的复制控制行设置为True
df.at[control_row_idx, '复制控制行'] = True
# 输出结果
print(df)
执行以上代码会得到以下输出:
组别 数值 复制控制行
0 A 1 True
1 A 2 False
2 B 3 True
3 B 4 False
4 C 5 True
5 C 6 False
这段代码首先创建了一个示例数据,包含组别和数值两列。然后创建了一个新列复制控制行
,初始值为False。
接下来,使用df['组别'].unique()
获取所有不重复的组别,然后使用一个for循环遍历每个组别。在每次循环中,使用df.loc[df['组别'] == group, '数值'].idxmin()
找到当前组的最小数值所在的行索引,然后使用df.at[control_row_idx, '复制控制行'] = True
将该行的复制控制行
设置为True。
最后,输出结果表格,其中每个组的最小数值所在的行对应的复制控制行
为True,其余行为False。
下一篇:按组复制R中的值