C RUBY-ON-RAILS MYSQL ASP.NET DEVELOPMENT RUBY .NET LINUX SQL-SERVER REGEX WINDOWS ALGORITHM ECLIPSE VISUAL-STUDIO STRING SVN PERFORMANCE APACHE-FLEX UNIT-TESTING SECURITY LINQ UNIX MATH EMAIL OOP LANGUAGE-AGNOSTIC VB6 MSBUILD

# python pandas update column values related to previous updated row during iteration over it

By : Tatun
Date : October 23 2020, 08:10 PM

Share :

## How to set or replace values of rows by a previous column value if conditions exist in python pandas

By : Raj
Date : March 29 2020, 07:55 AM
To fix this issue I'm trying to solve an issue related to set or replace values in rows by the value of the previous one in certain conditions. The data looks like: , Use mask, ne, and ffill:
code :
``````df= pd.DataFrame({'Point_ID':[1,2,3,1,2,1] , 'Shape_ID': [84,85,86,87,88,89]})
print(df)

Point_ID  Shape_ID
0         1        84
1         2        85
2         3        86
3         1        87
4         2        88
5         1        89

``````
``````   Point_ID  Shape_ID
0         1        84
1         2        84
2         3        84
3         1        87
4         2        87
5         1        89
``````

## Python pandas dataframe add element to previous row values and create a new column

By : Aurelian Cebotari
Date : March 29 2020, 07:55 AM
seems to work fine Using numba
You can make use of numba here, just make sure to pip install numba first. This option is slower than the cumsum option, but it helps to demonstrate how an algorithm for this problem would look.
code :
``````from numba import njit
``````
``````s = df.Volume.mul(df.Volume.shift(-1)).gt(0).tolist()

@njit
def increment(s):
rate = [int(s[0]>0)]
for idx, el in enumerate(s[1:]):
if el:
rate.append(rate[idx]+1)
else:
rate.append(0)
return rate

increment(s)
``````
``````[1, 0, 0, 1, 0, 1, 2, 3, 0, 0, 1, 0, 0]
``````
``````s = df.Volume.mul(df.Volume.shift(-1)).gt(0).astype(int)

s.groupby(s.ne(s.shift()).cumsum()).cumsum()
``````
``````0     1
1     0
2     0
3     1
4     0
5     1
6     2
7     3
8     0
9     0
10    1
11    0
12    0
Name: Volume, dtype: int32
``````
``````df.Volume.mul(df.Volume.shift(-1))
``````
``````0     2.0
1    -0.0
2     0.0
3     3.0
4    -3.0
5     2.0
6     2.0
7     2.0
8    -4.0
9    -4.0
10    2.0
11   -0.0
12    NaN
Name: Volume, dtype: float64
``````
``````df.Volume.mul(df.Volume.shift(-1)).gt(0).astype(int)
``````
``````0     1
1     0
2     0
3     1
4     0
5     1
6     1
7     1
8     0
9     0
10    1
11    0
12    0
Name: Volume, dtype: int32
``````

## Python Pandas Update Conditional on DF2 Column Values

By : user2191601
Date : March 29 2020, 07:55 AM
it should still fix some issue I have 2 dataframes: , Just filter df2 before you update:
code :
``````df1.update(df2[df2['height'] > 70])
``````

## How to shift the column values based on the difference with previous row in python pandas?

By : user2744376
Date : March 29 2020, 07:55 AM
hop of those help? Create helper Series for groups by Series.diff, compare by Series.ne and Series.cumsum and pass it to DataFrameGroupBy.shift:
code :
``````diff = data['Name'].diff().ne(1).cumsum()
data[['width','height']] = data.groupby(diff)['width','height'].shift()
print (data)
0     1    NaN     NaN        2
1     2   13.0    90.0        1
2     3  101.0    45.0        1
3     5    NaN     NaN        1
4     6   11.0    34.0        2
``````

## Update column values sequentially where the new value is based on updated values in a 'previous' row

By : Julia Chmielewska
Date : October 14 2020, 12:00 AM
hop of those help? Consider the following table: , I am pretty sure that your logic reduces to:
code :
``````select id, val, (val - 1) as newval
from t;
``````
``````select id, val,
(val - first_value(val) over (order by id) as newval
from t;
``````