84669 personnes étudient
152542 personnes étudient
20005 personnes étudient
5487 personnes étudient
7821 personnes étudient
359900 personnes étudient
3350 personnes étudient
180660 personnes étudient
48569 personnes étudient
18603 personnes étudient
40936 personnes étudient
1549 personnes étudient
1183 personnes étudient
32909 personnes étudient
dataframe的某列fillna如何通过自定义函数的返回值进行填充?自定义函数需要以某几列数据作为参数。类似下面代码的功能怎么实现?df['resultOfab'].fillna(myFunc(df['acolumn'],df['bcolumn']))
貌似只有dataframe才有fillna函数,而且只能指定值作为填充。要么就是只能加减乘除某两列得到新列数据。如果全部重新计算效率又很低。
业精于勤,荒于嬉;行成于思,毁于随。
C'est comme ça ? On ne sait pas vraiment quoi faire. . .
>>> df 0 1 2 0 1.0 NaN 5.0 1 2.0 3.0 6.0 2 3.0 5.0 7.0 3 4.0 NaN 8.0 >>> def dfunc(df1, df2): ... return df1 + 2 * df2 ... >>> df[1] = df[1].fillna(dfunc(df[0], df[2])) >>> df 0 1 2 0 1.0 11.0 5.0 1 2.0 3.0 6.0 2 3.0 5.0 7.0 3 4.0 20.0 8.0
Ou ça ?
>>> df 0 1 2 0 1.0 NaN 5.0 1 2.0 3.0 6.0 2 3.0 5.0 7.0 3 4.0 NaN 8.0 >>> def d_func(df1, df2): ... return df1 + df2 * 2 ... >>> df[1] = np.where(df[1].isnull(), d_func(df[0], df[2]), df[1]) >>> df 0 1 2 0 1.0 11.0 5.0 1 2.0 3.0 6.0 2 3.0 5.0 7.0 3 4.0 20.0 8.0
Il s'agit d'un type vectoriel a?b:c
a?b:c
C'est comme ça ? On ne sait pas vraiment quoi faire. . .
Ou ça ?
Il s'agit d'un type vectoriel
a?b:c