python-熊猫不删除符合条件的行和列
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python-熊猫不删除符合条件的行和列,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1613字,纯文字阅读大概需要3分钟。
内容图文
我正在尝试建立一个回归模型,以便根据出现的单词来预测收视率(1-5)(回归本身并不一定表现良好,更多的是关于所采用的方法).
我使用以下代码创建了一个词频矩阵:
bow = df.Review2.str.split().apply(pd.Series.value_counts)
看起来像这样:
我现在有兴趣删除在整个评论中很少出现的列(单词).此外,我只想迭代不具有NaN的Rating值的评论(行).
这是我的尝试:
# Delete row if Rating less than 1
for index, row in df.iterrows():
if (df.Rating[index] < 1):
bow.drop(bow.index[index], axis=0, inplace = True)
# Delete column if word occurs less than 50 times
sum1 = bow.sum(axis=0)
cntr = 0
for i in sum1:
if (i < 50):
bow.drop(bow.index[cntr], axis=1, inplace = True)
cntr += 1
这似乎没有用,因为它使单词只出现一次.
编辑:
这是我的稀疏数据框,包含单词的出现.
Col->话;
行->句子(项目的评论)(我有1.5k项,因此有1.5k行)
hi this are just some random words I don t ... zing zingy zingzang
0 1.0 NaN 1.0 1.0 1.0 NaN NaN NaN NaN NaN ... NaN NaN NaN
1 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN
2 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN
3 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN
4 NaN NaN NaN NaN NaN NaN NaN NaN NaN 1.0 ... NaN NaN NaN
评分是我原始数据帧中的一列,其中包含[1,5]范围内的整数或NaN
解决方法:
您可以使用向量化运算,而不是手动迭代:
# filter out rows where Rating < 1
bow = bow[~(bow['Rating'] < 1)]
# filter out columns where sum < 50
bow = bow.loc[:, ~(bow.sum(0) < 50)]
或同时:
# filter rows and columns with Boolean series
bow = bow.loc[~(bow['Rating'] < 1), ~(bow.sum(0) < 50)]
内容总结
以上是互联网集市为您收集整理的python-熊猫不删除符合条件的行和列全部内容,希望文章能够帮你解决python-熊猫不删除符合条件的行和列所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。