gpt4 book ai didi

python - 对 pandas DataFrame 进行矢量化更新?

转载 作者:行者123 更新时间:2023-11-28 22:39:43 24 4
gpt4 key购买 nike

我有一个数据框,我想用数组中的一些值更新它的列。然而,该数组的长度与数据帧不同,但我有我想要更新的数据帧行的索引。

我可以通过循环遍历行(如下)来做到这一点,但我希望有一种更有效的方法通过矢量化方法来做到这一点,但我似乎无法获得正确的语法。

在下面的示例中,我只是用 nan 填充列,然后通过循环直接使用索引。

df['newcol'] = np.nan

j = 0
for i in update_idx:
df['newcol'][i] = new_values[j]
j+=1

最佳答案

如果您已经有了一个索引列表,那么您可以使用 loc 来执行标签(行)选择,您可以传递新的列名,如果您现有的行没有被选择,这些将有 NaN 赋值:

df.loc[update_idx, 'new_col'] = new_value

例子:

In [4]:
df = pd.DataFrame({'a':np.arange(5), 'b':np.random.randn(5)}, index = list('abcde'))
df

Out[4]:
a b
a 0 1.800300
b 1 0.351843
c 2 0.278122
d 3 1.387417
e 4 1.202503

In [5]:
idx_list = ['b','d','e']
df.loc[idx_list, 'c'] = np.arange(3)
df

Out[5]:
a b c
a 0 1.800300 NaN
b 1 0.351843 0
c 2 0.278122 NaN
d 3 1.387417 1
e 4 1.202503 2

关于python - 对 pandas DataFrame 进行矢量化更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34426247/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com