熊猫:按行从DataFrame的特定列中选择值

杰森·桑切斯(Jason Sanchez):

给定一个具有多列的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)

不幸的是,这不是向量化操作,需要花费大量时间处理大型数据集。任何想法,将不胜感激。

MaxU:

熊猫方法

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章