python——如何根据其他行的内容过滤数据帧中的行?
发布时间:2022-05-07 18:52:13 252
相关标签: # node.js
假设我有一个定义为
pd.DataFrame({'col1': ['foo', '', '', 'foo', 'quux', 'baz', 'baz', 'baz'],
'col2': ['', 'gb', '', 'de', 'gb', '', 'es', 'es'],
'col3': [123, float("NaN"), 456, 723, 456, 123, 123, 721],
'col4': ['', '', 'val1', 'val2', 'val3', '', 'val4', 'val5'],
'value': [1, 1, .4, .5, .3, 1, .5, .4]})
看起来像
指数 | 可乐1 | 可乐2 | 可乐3 | 可乐4 | 价值 |
---|---|---|---|---|---|
0 | 福 | 123.0 | 1.0 | ||
1 | 国标 | 楠 | 1.0 | ||
2 | 456.0 | val1 | 0.4 | ||
3 | 福 | 判定元件 | 723.0 | val2 | 0.5 |
4 | 库克斯 | 国标 | 456.0 | val3 | 0.3 |
5 | 基础 | 123 | 1 | ||
6 | 基础 | 锿 | 123 | val4 | .5 |
7 | 基础 | 锿 | 721 | val5 | 0.4 |
我想筛选这个表,删除所有值等于1.0的行,但也要删除所有在填充列中值与值==1.0行相同的行。因此,在上表中,我们将删除第0、1和5行,因为值=1.0,并且删除第3行,因为col1='foo',第4行,因为col2='gb',第6行,因为col1='baz'和col3=123。应保留第2行和第7行。
指数 | 可乐1 | 可乐2 | 可乐3 | 可乐4 | 价值 |
---|---|---|---|---|---|
2 | 456.0 | val1 | 0.4 | ||
7 | 基础 | 锿 | 721 | val5 | 0.4 |
最好的方法是什么?我可以找到值==1.0的所有行,然后遍历它们,并从表中筛选出集合列中具有相同值的所有行,但遍历dataframe行并不理想。我也想过进行合并,但我也不知道如何告诉合并忽略没有值集的列。
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报