Pandas新建DataFrame存储非空值计数无响应问题咨询
问题原因
- 存在变量名拼写错误:你初始化空DataFrame时写的变量名是
df_ new,下划线和new之间多了一个多余空格,和后续赋值操作使用的df_new不是同一个变量,初始化的空表完全没被用到。 - 核心逻辑不符合Pandas的赋值规则:给DataFrame新增列时,如果直接传入单个标量值(也就是你计算得到的计数值2),Pandas无法匹配到对应的行索引,不会自动生成行来存储这个值,最终只会得到一个带列名但没有任何有效行数据的空DataFrame,自然不会输出你预期的结果。
修正代码
两种可直接运行的正确写法:
import pandas as pd import numpy as np # 复现你的原始测试数据 df = pd.DataFrame({"a column": [np.nan, "e", np.nan, "b"]}) # 写法1:修正变量名+用列表包裹标量值,让Pandas能识别到行数据 df_new = pd.DataFrame() df_new['column1'] = [df["a column"].count()] # 写法2:初始化新DataFrame时直接传入统计结果,代码更简洁 # df_new = pd.DataFrame({"column1": [df["a column"].count()]})
运行后得到的df_new输出和你预期完全一致:
column1 0 2
补充说明:Pandas的
Series.count()方法本身返回的就是整数类型统计结果,不需要额外套int()做类型转换。
内容的提问来源于stack exchange,提问作者coelidonum
相关产品推荐
相关产品推荐

