The DataFrame:
import pandas as pd
import numpy as np
df = pd.DataFrame({'col1': [2, 6, 7, 8, 2]})
| col1 | |
|---|---|
| 0 | 2 |
| 1 | 6 |
| 2 | 7 |
| 3 | 8 |
| 4 | 2 |
A function to create a new column being a cumulative sum (I'm aware of cumsum(), this was just a simple test before doing more complex functions):
def funcadd(inputarr):
for i in range(1, len(inputarr)):
inputarr[i] = inputarr[i] + inputarr[i-1]
return inputarr
df['new'] = funcadd(df['col1'].values)
| col1 | new | |
|---|---|---|
| 0 | 2 | 2 |
| 1 | 8 | 8 |
| 2 | 15 | 15 |
| 3 | 23 | 23 |
| 4 | 25 | 25 |
As you can see, for some reason col1 gets modified despite never issuing a command to change it (?)
I've tried:
- immediately doing
arr1 = inputarrin the function then only usingarr1in the rest of the function - doing
arr2 = df['col1'].valuesbefore calling the function witharr2 - swapping
.valueswith.to_numpy