熊猫:行数计数错误

2024-05-29 04:53:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我把熊猫放在笔记本里。我有一个数据帧result_df,包含一列_text。我试图筛选出满足某个条件的行(特别是那些结果中的字数为0的行)。你知道吗

当我开始的时候,我有一个:

len(result_df)

我回来了:

49708

然后我做这个:

result_df[result_df['_text'].apply(textstat.lexicon_count) != 0]

在笔记本中,我看到一个巨大的数据框,底部是这样的:

49701 rows × 5 columns

但是,当我跑步时:

len(result_df)

我回来了:

49708

所以现在我很困惑:看起来我删除了7行,但是len函数不同意。。。你知道吗

任何澄清都太棒了!你知道吗

谢谢!你知道吗


Tags: columns数据textdflencount笔记本result
1条回答
网友
1楼 · 发布于 2024-05-29 04:53:49

覆盖将有所帮助。使用以下代码行:

result_df = result_df[result_df['_text'].apply(textstat.lexicon_count) != 0]
len(result_df)
网友
2楼 · 发布于 2024-05-29 04:53:49

您所做的只是使用布尔索引获得原始数据帧的视图。没有变化。例如:

In [108]: df
Out[108]: 
   colx  coly name
0     1     5  foo
1     2     6  foo
2     3     7  bar
3     4     8  bar

In [109]: len(df)
Out[109]: 4

现在,索引以查找colx>;3的所有行:

In [110]: df[df['colx'] > 3]
Out[110]: 
   colx  coly name
3     4     8  bar

In [111]: len(df[df['colx'] > 3])
Out[111]: 1

但是,如果打印出原始df:

In [112]: df
Out[112]: 
   colx  coly name
0     1     5  foo
1     2     6  foo
2     3     7  bar
3     4     8  bar

如果要将数据帧重新分配给切片,则需要显式分配它:

result_df = result_df[result_df['_text'].apply(textstat.lexicon_count) != 0]

相关问题 更多 >

    热门问题