numpy
によるインデックス作成は、ラベルに応じてからカラムを取得する方法がありますが、インデックス作成ははるかに高速です。pd.DataFrameからカラムラベルのインデックスを取得する効率的な方法
pandas
またはnumpy
には、反復せずに列ラベルから列インデックスに移動する方法はありますか?
DF_var = pd.DataFrame(np.random.random((5,10)), columns=["attr_%d" % _ for _ in range(10)])
query_cols = ["attr_2","attr_5","attr_6","attr_0"]
want_idx = [0,2,5,6]
# Something like np.where w/o iterating through?
# np.where(query_cols in DF_var.columns)
# TypeError: unhashable type: 'list'
# np.where(x in DF_var.columns for x in query_cols)
# (array([0]),)
long_way = list()
for i, label in enumerate(DF_var.columns):
if label in query_cols:
long_way.append(i)
# print(sorted(long_way))
# [0, 2, 5, 6]
参照:http://stackoverflow.com/questions/13021654/retrieving-column-index-from-column-name-in-python-pandasを – albert
は、このためです単一の値またはリストのために? –
@ O.rka singleですが、リストの理解度を使用してすべてのインデックスを取得できます。 – Alex