我有以下数据帧
import pandas as pd
df = pd.DataFrame({'a': [201, 201, 201, 201, 202, 202, 202, 203, 203, 203],
'b': [ 1, 2, 3, 5, 1, 2, 6, 1, 3, 4]})
df_filter = pd.DataFrame({'a': [ 201, 202, 203],
'b': [[1, 2, 3], [1, 2], [1]]}).set_index('a')
它们看起来像:
>>> df
a b
0 201 1
1 201 2
2 201 3
3 201 5
4 202 1
5 202 2
6 202 6
7 203 1
8 203 3
9 203 4
>>>
>>> df_filter
b
a
201 [1, 2, 3]
202 [1, 2]
203 [1]
我想过滤df,使用dfè过滤器。也就是说,我想为“a”的每个元素保留“b”中对应列表的元素。你知道吗
想要的结果:
>>> df_filtered
a b
0 201 1
1 201 2
2 201 3
4 202 1
5 202 2
7 203 1
另外,我实际上只想为“a”上的每个元素保留“b”的连续元素。我现在可以生产'dfu过滤器'和过滤器与此,但任何建议,这样做更容易谁会比欢迎。你知道吗
pandas} 将列表转换为行,然后通过默认的内部联接
0.25+
的解决方案-通过^{merge
(列名相同,因此on
参数是省略的):或者^{} 如果输入是2列
DataFrame
:编辑:要避免重置为默认索引值,请使用
reset_index
和set_index
:相关问题 更多 >
编程相关推荐