Pandas分箱后如何提取计数数值写入DataFrame新列解决NaN问题
问题原因
groups.count().sentence返回的结果是索引为区间类型(如(1, 12])的Series,你的目标DataFrame索引为默认的整数索引,两者索引无法匹配,赋值时就会全部填充为NaN。
解决方法
直接提取计数结果的数值列表赋值即可,分箱计数的顺序和你定义的category列表顺序完全对应,不会出现错位问题,参考代码如下:
import pandas as pd category = ['1-12','13-24','25-36','37-48','48-60','61-72','73-84','85-96','97-108','109-128'] bins = [1,12,24,36,48,60,72,84,96,108,128] # 生成分箱计数并转为列表,顺序和category完全匹配 count_list = df.groupby(pd.cut(df.sentence, bins)).count().sentence.tolist() # 赋值生成目标列 df['len_sentence'] = category df['distribuition_len_sentence'] = count_list # 导出csv即可看到正常数值 df.to_csv("统计结果.csv", index=False)
内容的提问来源于stack exchange,提问作者samira
相关产品推荐
相关产品推荐

