python - Python Pandas Dataframes:不能有条件地删除行,总是在意外时删除整个数据集
问题描述
两个多小时以来,我一直无法解决这个问题。我发现了似乎解决方案的每一个变体,但它们似乎都不起作用。不过,这可能是因为我每天要睡四个小时。无论如何,我想做的是有条件地从熊猫数据框中删除行。数据框来自流行的 youtube 视频 CSV。其中一列是“category_id”。
我正在尝试删除所有没有数字 25 或 43 的类别。每次我这样做时,整个数据集都会减少到 0 行。我知道您在想什么,是否存在甚至具有类别 25 或 43 的行?是的!他们是这样!
我真正认为可行的解决方案如下:
df.drop(df[df.category_id != 25].index, inplace=True)
df.drop(df[df.category_id != 43].index, inplace=True)
但后来我检查了那个数据框,它是空的。如何解决这个问题?
解决方案
df = pd.DataFrame( {'category_id': [12, 14, 25, 7, 29, 43, 22, 95]} )
df
category_id
0 12
1 14
2 25
3 7
4 29
5 43
6 22
7 95
df.drop( list(df[ ~ df['category_id'].isin([25, 43])].index), \
inplace = True, axis = 0)
df
category_id
2 25
4 43
推荐阅读
- php - Docker 服务未链接 - WordPress 未连接到 MySQL
- nginx - nginx:重定向到非 www 包括所有子域
- java - 带有 MultiTenantConnectionProvider 的 Springboot 多租户总是抛出 org.apache.tomcat.jdbc.pool.PoolExhaustedException:
- vue.js - 如何使用 webpack 在 Vue cli 3 中包含 css 文件
- javascript - 从javascript中的另一个数组重新构建对象数组
- android - 在包含 Volley Request 的方法中返回 ArrayList 的范围问题
- cordova - Cordova ondevice 准备好无法正常工作
- django - 创建其中一个时保存两个模型之间的关系
- angular - 带有延迟加载模块和子路由的Angular 7路由器'**'通配符不起作用?
- c# - 忘记了 aspnet 身份中的密码