Python 在熊猫的索引列中查找值
假设我有一个如下所示的数据帧Python 在熊猫的索引列中查找值,python,pandas,Python,Pandas,假设我有一个如下所示的数据帧 d = {'col1': [1, 2,4,5,6], 'col2': [3, 4,5,6,7], 'col3': ['foo', 'bar', 'baz','biz', 'boo'] } df = pd.DataFrame(data=d) df.head() col1 col2 col3 0 1 3 foo 1 2 4 bar 2 4 5 baz 3 5 6 biz 4
d = {'col1': [1, 2,4,5,6], 'col2': [3, 4,5,6,7], 'col3': ['foo', 'bar', 'baz','biz', 'boo'] }
df = pd.DataFrame(data=d)
df.head()
col1 col2 col3
0 1 3 foo
1 2 4 bar
2 4 5 baz
3 5 6 biz
4 6 7 boo
现在,我想索引所有列。。
indexed\u df=df.set\u index(['col1','col2','col3'))
如何在此索引df中搜索特定值
如果我想在df中搜索baz
我会的
df[df.col3 == 'baz']
如何使用索引的_df做同样的事情有几种方法: 选项1: 选项2: 选项3:
让我们假设有一些数据
indexed_df = df.set_index(['col1', 'col2', 'col3']).assign(value=1)
上述任何一项都将给出:
value
col1 col2 col3
4 5 baz 1
谢谢你的回复。。最后一个问题。如果其中一个索引列是list呢?比如说:col4有一行的列表值为[1,2,3,4],我想在col4中搜索4?这听起来像是它自己的问题。还有一些选项,
explode
系列和groupby().max()
似乎是可行的。但如果没有数据,我无法准确判断:-)。不管怎么说,这都不适合评论。我在这里问了一个问题:谢谢你的帮助
indexed_df.loc[indexed_df.index.get_level_values('col3')=='baz']
indexed_df = df.set_index(['col1', 'col2', 'col3']).assign(value=1)
value
col1 col2 col3
4 5 baz 1