我有一個資料框,讓我們使用這個例子:
df = pd.DataFrame({'A': [5,6,3,4], 'B': [1,2,3,5]})
df
A B
0 5 1
1 6 2
2 3 3
3 4 5
我有一個要選擇的列串列(按索引),比如說:
list=['A','B','B','A']
我想獲得的是[5,2,3,4],如果可能的話,一個系列。我怎樣才能做到這一點?我試過戴口罩,但我無法讓它發揮作用。
uj5u.com熱心網友回復:
您可以使用查找:
df.values[range(len(df)), df.columns.get_indexer_for(l)]
array([5, 2, 3, 4], dtype=int64)
uj5u.com熱心網友回復:
您可以使用 numpy 高級索引創建查找:
import numpy as np
idx, cols = pd.factorize(lst)
out = out = df.reindex(cols, axis=1).to_numpy()[range(len(df)), idx].tolist()
輸出:
[5, 2, 3, 4]
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/453896.html
上一篇:如何使用函式按一列按兩列排序
