Sometimes you need to update the content of a table in your work , have access to pandas Update .
* Content to be updated data1 And get the target table of the updated content data2 import pandas as pd import numpy as np data1 = pd
.DataFrame(np.arange(0,25).reshape(5,5),columns= list('abcde'),index=list(
'mnopq')) data2 = pd.DataFrame(np.arange(30,46).reshape(4,4),columns= list(
'abcd'),index=list('mnop')) data2.loc[:,'a'] = np.arange(0,16,5) >>> data1 a b
c d e m0 1 2 3 4 n 5 6 7 8 9 o 10 11 12 13 14 p 15 16 17 18 19 q 20 21 22 23 24
>>> data2 a b c d m 0 31 32 33 n 5 35 36 37 o 10 39 40 41 p 15 43 44 45
* If data2 In a Column values and data1 The same and data2 In b Column value is not empty , Then data1 Of b Update column to data2 Of b Column value . for r1 in range(
data1.shape[0]): for r2 in range(data2.shape[0]): # only data2 Update only when the value of is not empty data1 if (
data1.iloc[r1]['a'] == data2.iloc[r2]['a']) and pd.isna(data2.iloc[r2]['b']) !=
True: # It can't be written as data1.iloc[r1]['b'], This way, the data will not be updated data1.iloc[r1,data1.columns == 'b'] =
data2.iloc[r2,data1.columns == 'b'] >>> data1 a b c d e m 0 31 2 3 4 n 5 35 7 8
9 o 10 39 12 13 14 p 15 43 17 18 19 q 20 21 22 23 24
Technology
Daily Recommendation