繁体   English   中英

在Pandas数据框中分配新值的更快方法

[英]Faster way to assign new values in pandas dataframe

我想知道是否有更快的方法将新值分配给熊猫数据框中的另一个单元格为条件的单元格。 例如,使用此df:

df = pd.DataFrame({'rank':[1, 1, 1, 1, 2, 2, 2, 2], 'condition':[.01, .01, .01, .01, .01, .01, .01, .01]})

以下代码有效:

def changerank(row):
    if (row['condition'] == 0) & (row['rank'] > 1):
        row['rank'] = 1
    return row

df = df.apply(changerank, axis=1)

但这在包含数百万行的真实数据帧中相当慢。 我觉得可能还有另一种方法可以根据行的值来更改“等级”的值。

感谢您的任何想法!

您可以使用.ix

df.ix[(df.condition==0) & (df.rank>1), 'rank'] = 1

我相信loc也可以代替ix

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM