给定一个具有多列的DataFrame,我们如何从特定的列中逐行选择值以创建新的Series?
df = pd.DataFrame({"A":[1,2,3,4],
"B":[10,20,30,40],
"C":[100,200,300,400]})
columns_to_select = ["B", "A", "A", "C"]
目标: [10, 2, 3, 400]
一种有效的方法是使用apply语句。
df["cols"] = columns_to_select
df.apply(lambda x: x[x.cols], axis=1)
不幸的是,这不是向量化操作,需要花费大量时间处理大型数据集。任何想法,将不胜感激。
熊猫方法:
In [22]: df['new'] = df.lookup(df.index, columns_to_select)
In [23]: df
Out[23]:
A B C new
0 1 10 100 10
1 2 20 200 2
2 3 30 300 3
3 4 40 400 400
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句