如何统计pandas DataFrame中唯一值出现次数并生成新DataFrame
实现代码
首先确保你已经导入了pandas和numpy库:
import pandas as pd import numpy as np
核心实现逻辑
# 你的示例DataFrame data = { 'col_A': ['X', 'X', 'Y', 'Z', 'Z'], 'col_B': ['Y', 'Y', np.nan, 'Z', 'Z'], } df = pd.DataFrame(data) # 统计逻辑 result = df.apply(lambda col: col.value_counts(dropna=False))\ .fillna(0)\ .astype(int)\ .rename(index={np.nan: 'nan'}) # 可选:将NaN索引显示为'nan'字符串,匹配你的输出格式 result.index.name = 'index' # 可选:设置索引名匹配你的输出要求
执行后打印result即可得到你需要的输出格式:
col_A col_B index X 2 0 Y 1 2 Z 2 2 nan 0 1
逻辑说明
value_counts(dropna=False):默认value_counts会忽略NaN,添加这个参数才能统计到NaN的出现次数fillna(0):部分取值只在个别列存在,其他列的统计结果会是NaN,统一填充为0astype(int):把默认的浮点数统计结果转为整数,符合输出要求- 最后的rename操作是为了把索引里的np.nan显示为字符串'nan',如果不需要可以直接删掉这行
内容的提问来源于stack exchange,提问作者Mohammad
相关产品推荐
相关产品推荐

