import pandas as pd
import numpy as np
df = pd.DataFrame({"a": [7, 2, 3], "b": [4, 5, 6], "c": [100, np.nan, np.NaN]})
df
Out[11]:
a b c
0 7 4 100.0
1 2 5 NaN
2 3 6 NaN
对于上述Python pandas DataFrame,我想对第0行进行操作:
计算列a
和b
之间的差。其结果应添加到列c
的内容中,并存储在(新)列d
中。
对于第1行,第一步,应将第0行/第d
列的内容存储在c
列中。
此后,应该应用与之前针对第零行相同的算法。
执行完此操作后,所得的DataFrame将如下所示:
a b c d
0 7 4 100.0 103.
1 2 5 103.0 100.
2 3 6 100.0 97.
实际上,数据框具有比此小示例更多的行。因此,快速的计算速度非常重要。
用于计算此新数据框的解决方案会是什么样子?
答案 0 :(得分:6)
您可以获取a
和b
之间的差的累积总和,将其添加到列c
的初始值中,然后用您的{新计算的c
,向下移动1:
d