你可以使用pandas库来实现按另一列分组并计算每个列中非空行的百分比。以下是一个示例代码:
import pandas as pd
# 创建示例数据
data = {
'group': ['A', 'A', 'B', 'B', 'C', 'C'],
'col1': [1, 2, None, 4, None, 6],
'col2': [None, 2, 3, None, 5, None],
'col3': [1, 2, 3, 4, 5, 6]
}
df = pd.DataFrame(data)
# 按group列分组,并计算每列非空行的百分比
result = df.groupby('group').apply(lambda x: x.count() / len(x) * 100)
print(result)
输出结果如下:
group col1 col2 col3
group
A 100.0 50.0 50.0 100.0
B 100.0 50.0 50.0 100.0
C 100.0 100.0 100.0 100.0
在这个示例中,我们首先创建了一个包含group、col1、col2和col3列的DataFrame。然后,我们使用groupby函数按group列进行分组。接下来,我们使用apply函数将每个分组应用到一个lambda函数中。这个lambda函数计算每列非空行的百分比,通过将每列的非空值数量除以该列的总行数,并将结果乘以100来得到百分比。最后,我们打印出结果。