2024-09-28 22:33:54 发布
网友
我有一个名为df的数据帧,其原始形状为(4361, 15)。agefm列的某些值为NaN。你看:
df
(4361, 15)
agefm
> df[df.agefm.isnull() == True].agefm.shape (2282,)
然后创建新列并将其所有值设置为0:
那么{cd3>中的{cd3}值将设置为:
df[df.agefm.isnull() == True].nevermarr = 1
什么都没改变:
> df['nevermarr'].sum() 0
我做错什么了?在
最好是使用^{}:
df['nevermarr'] = np.where(df.agefm.isnull(), 1, 0) print (df) agefm nevermarr 0 NaN 1 1 5.0 0 2 6.0 0
或者使用^{},==True可以省略:
==True
或^{}:
df['nevermarr'] = df.nevermarr.mask(df.agefm.isnull(), 1) print (df) agefm nevermarr 0 NaN 1 1 5.0 2 2 6.0 3
样品:
import pandas as pd import numpy as np df = pd.DataFrame({'nevermarr':[7,2,3], 'agefm':[np.nan,5,6]}) print (df) agefm nevermarr 0 NaN 7 1 5.0 2 2 6.0 3 df.loc[df.agefm.isnull(), 'nevermarr'] = 1 print (df) agefm nevermarr 0 NaN 1 1 5.0 2 2 6.0 3
最好是使用^{} :
或者使用^{} ,
^{pr2}$==True
可以省略:或^{} :
样品:
相关问题 更多 >
编程相关推荐