要按组删除Pandas中的前导零值,可以使用groupby
和apply
方法来处理每个组。以下是一个示例代码:
import pandas as pd
# 创建示例数据
data = {'group': ['A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C'],
'value': [0, 0, 1, 0, 2, 3, 0, 0, 4]}
df = pd.DataFrame(data)
# 定义函数来删除前导零值
def remove_leading_zeros(group):
group['value'] = group['value'].astype(str).str.lstrip('0')
return group
# 按组应用函数
df = df.groupby('group').apply(remove_leading_zeros).reset_index(drop=True)
print(df)
输出结果如下:
group value
0 A 0
1 A 0
2 A 1
3 B 0
4 B 2
5 B 3
6 C 0
7 C 0
8 C 4
在上面的代码中,我们首先创建了一个包含"group"和"value"列的示例数据帧。然后,我们定义了一个函数remove_leading_zeros
,它将每个组的"value"列转换为字符串,然后使用lstrip
方法删除前导零。最后,我们使用groupby
和apply
方法来按组应用这个函数,并使用reset_index
方法重置索引。
请注意,这个解决方案假定"value"列中的数据都是整数。如果"value"列中的数据类型是浮点数,您可能需要使用不同的方法来删除前导零。
下一篇:按组删除缺失值