使用Python Pandas库中的groupby()方法和count()函数来实现将每个类别的非空值计数作为单独的列输出。
示例代码:
import pandas as pd
# 创建示例数据
df = pd.DataFrame({'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Emily'],
'Category': ['A', 'A', 'B', 'C', 'C'],
'Value': [10, 20, np.nan, 30, 40]})
# 使用groupby和count函数获取每个Category类别下的非空值的数目,并将其作为Series类型
non_null_count_series = df.groupby('Category')['Value'].count()
# 将Series类型转换为DataFrame类型,并重命名列名为'Non-null Count'
non_null_count_df = non_null_count_series.to_frame(name='Non-null Count')
# 将DataFrame类型与原数据集合并,按照Category类别列进行拼接
result = pd.merge(df, non_null_count_df, on='Category')
print(result)
代码输出:
Name Category Value Non-null Count
0 Alice A 10.0 2
1 Bob A 20.0 2
2 Charlie B NaN 0
3 David C 30.0 2
4 Emily C 40.0 2