use*_*005 5 python multi-index dataframe pandas
我有一个Pandas Dataframe,它具有使用列userid和创建的多重索引itemid。df看起来像这样
0 1 2
userid itemid
007 5000 9 4 3
007 4000 6 7 1
009 3000 1 2 3
Run Code Online (Sandbox Code Playgroud)
我想检查数据帧df中是否存在索引[007,6000]。我怎样才能做到这一点。如果我运行以下代码,将出现错误TypeError: unhashable type: 'list'。
if [007, 6000] in df.index:
print('it works')
Run Code Online (Sandbox Code Playgroud)
为了这 -
df
0 1 2
userid itemid
7 5000 9 4 3
4000 6 7 1
9 3000 1 2 3
df.index.values
array([(7, 5000), (7, 4000), (9, 3000)], dtype=object)
Run Code Online (Sandbox Code Playgroud)
您可以使用df.index.isin。
df.index.isin([(7, 5000)])
array([ True, False, False], dtype=bool)
Run Code Online (Sandbox Code Playgroud)
这为您提供了一个与可以找到该值的位置相对应的掩码。如果您只是想知道它是否存在np.ndarray.any,请与结合使用isin。
df.index.isin([(7, 5000)]).any()
True
df.index.isin([(7, 6000)]).any()
False
Run Code Online (Sandbox Code Playgroud)
使用Index.isin:
df = df.index.isin([('007','5000')])
print (df)
[ True False False]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5560 次 |
| 最近记录: |