You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为Pandas DataFrame添加单词数列时出现NaN的原因及解决方法

问题分析与解决方法

嘿,我来帮你揪出问题所在啦!

为什么会出现NaN?

你这段代码里的问题出在修改了count的索引:

count.index = count.index.astype(str) + ' words:'

原DataFrame的索引是默认的数字序列(0、1、2...),但你把count的索引改成了类似"0 words:"、"1 words:"这种格式,两者的索引完全不匹配。当你尝试把count作为新列添加到原DataFrame时,Pandas会按照索引去匹配对应行,找不到匹配项的话就会填充NaN,所以才会出现全是NaN的情况。

正确的解决步骤

其实根本不需要修改索引,直接保留和原DataFrame一致的索引就能轻松添加新列:

  1. 先正确计算每条短信的单词数,不修改索引:
    count = data['INHALT'].str.split().str.len()
    
  2. 直接将计算结果赋值给新列(比如命名为Amount of words):
    data['Amount of words'] = count
    

额外优化:处理空短信的情况

如果你的数据里存在空短信(比如INHALT列是空字符串),str.split().str.len()会返回NaN,这时候可以用fillna(0)把NaN替换成0,确保数据完整性:

data['Amount of words'] = data['INHALT'].str.split().str.len().fillna(0)

验证示例

用你给出的示例数据测试的话,运行完代码后DataFrame会变成:

IndexContentAmount of words
0Hi I am cool4
1What up?2
2Are you happy?3

完全符合你的预期~

内容的提问来源于stack exchange,提问作者newbie1

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 21:32:53