如何设置数据库.loc函数设置许多值的熊猫?

时间:2019-02-11 23:46:06

标签: python pandas dataframe

我有几行工作正常:

dbOut.loc[dbOut["id"] == id, "date"] = datevalue
dbOut.loc[dbOut["id"] == id,"number"] = numbervalue

问题是,每一行都花费太多时间来运行。我喜欢这种类型的10行,所以我的迭代时间就像15次迭代/秒。只剩下一个就可以达到150次迭代/秒。 问题是:有没有办法只制作一个.loc并将每个值设置为每一行?

我尝试过类似的事情:

dbOut.loc[dbOut["id"] == id, ["date","number"]] = datevalue, numbervalue

但它不起作用。

我认为也许有一种方法可以首先定位,然后将每个值应用于每个列,但我不知道如何。

谢谢!

2 个答案:

答案 0 :(得分:0)

这应该有效。

dbOut.loc[dbOut["id"] == id, ["date", "number"]] = [datevalue, numbervalue]

答案 1 :(得分:0)

您可以使用numpy

dbout['date'] = np.where(dbout['id'] == id, datevalue,None)

类似地

dbout['number'] = np.where(dbout['id'] == id, numbervalue,None)

注意:考虑到id是预定义的,请根据需要用其他值替换None。