你可以使用Python的pandas库来按列分组并实现你的要求。以下是一个示例代码:
import pandas as pd
# 创建一个示例数据集
df = pd.DataFrame({
'A': [0, 0, 1, 0, 2],
'B': [0, 3, 0, 4, 0],
'C': [0, 0, 0, 0, 5]
})
# 按列分组并应用自定义函数
def custom_group(row):
first_nonzero = row[row != 0].iloc[0] # 获取第一个非零值
row[row == first_nonzero] = 1 # 将第一个非零值标记为1
row[row != first_nonzero] = 0 # 将其余值标记为0
return row
df = df.apply(custom_group, axis=0)
print(df)
输出结果如下:
A B C
0 0 0 0
1 0 1 0
2 1 0 0
3 0 0 0
4 0 0 1
在这个示例中,我们首先创建了一个包含三列的DataFrame,然后定义了一个自定义函数custom_group
,该函数按照要求对每一列进行处理。在函数内部,我们首先找到第一个非零值,并将其标记为1,然后将其余值标记为0。最后,我们使用apply
函数将自定义函数应用到每一列,并得到了结果。