gpt4 book ai didi

python - 对 numpy 数组执行计算并将其添加到 pandas 数据框中

转载 作者:行者123 更新时间:2023-11-30 21:56:38 25 4
gpt4 key购买 nike

假设我有一个这样的数组:

a = np.array([[1, 2, 3, 4, 5, 6, 7], [20, 25, 30, 35, 40, 45, 50], [2, 4, 6, 8, 10, 12, 14]])

和一个像这样的数据框:

  num letter
0 1 a
1 2 b
2 3 c

然后我想做的是计算数组中每个序列中第一个和最后一个数字之间的差异,并最终将此差异添加到 df 中的新列中。

目前我能够以这种方式计算每个序列中所需的差异:

for i in a:
print(i[-1] - i[0])

给我以下结果:

6
30
12

我希望能够将 print 替换为 df['new_col'],如下所示:

df['new_col'] = (i[-1] - i[0])

然后我的 df 看起来像这样:

  num letter new_col
0 1 a 6
1 2 b 30
2 3 c 12

但是,我最终得到了这个:

  num letter  new_col
0 1 a 12
1 2 b 12
2 3 c 12

如果有人能告诉我 numpy 中 .diff().shift() 的等价物是什么,我也非常感激,因为我在相同的情况下尝试过您也可以使用 pandas 数据框,但只是收到错误消息。如果我不仅想计算第一个数字和最后一个数字之间的差异,而且还想计算两者之间的差异,这对我很有用。

任何帮助将不胜感激,干杯。

最佳答案

目前您只在最后一个中执行差异计算

使用列表理解:

a = np.array([[1, 2, 3, 4, 5, 6, 7], [20, 25, 30, 35, 40, 45, 50], [2, 4, 6, 8, 10, 12, 14]])

b = [i[-1] - i[0] for i in a]

如果长度不匹配,则需要使用 NaN 扩展列表:

b = b + [np.NaN]*(len(df) - len(b))
df['new_col'] = b

关于python - 对 numpy 数组执行计算并将其添加到 pandas 数据框中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55454609/

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