【发布时间】:2019-01-26 10:06:43
【问题描述】:
鉴于此pandas.core.frame.DataFrame 示例:
col
0 2 0
0 1
3 1
我想获取 col 为 1 的那些索引:
df[df['col']==1]
预期的结果将是一个向量(0,3)。
【问题讨论】:
标签: python pandas numpy indexing multi-index
鉴于此pandas.core.frame.DataFrame 示例:
col
0 2 0
0 1
3 1
我想获取 col 为 1 的那些索引:
df[df['col']==1]
预期的结果将是一个向量(0,3)。
【问题讨论】:
标签: python pandas numpy indexing multi-index
这可能会奏效:
import pandas as pd
d = {'base':[2,0,3],'col':[0,1,1]}
df = pd.DataFrame(data=d)
col_is_1 = df['col'] == 1
df_temp = df[col_is_1]
matrix = df_temp.values
vec = matrix[:,0]
print(vec)
按预期返回 [0,3]
【讨论】:
您可以使用 NumPy 创建一个索引数组,然后过滤第二个索引:
import numpy as np
df = pd.DataFrame({'col': [0, 1, 1]},
index=pd.MultiIndex.from_tuples([(0, 2), (0, 0), (0, 3)]))
# col
# 0 2 0
# 0 1
# 3 1
idx = np.array(df[df['col'] == 1].index.tolist())
# array([[0, 0],
# [0, 3]])
res = idx[:, 1]
# array([0, 3])
【讨论】: