我想根据下面列出的多个条件将值从一列(个人信息)复制到另一列(变量)
检查“个人信息”列是否以数字开头
检查'VARIABLE'列中对应的行值是否为Nan
检查'VARIABLE'列中的前一行值是否不是Nan(这里'gender'不是nan但可能有Nan的情况)
满足所有条件后,我想将值从“个人信息”列复制到“变量”列
请在下面找到输入数据的样子
df = pd.DataFrame({'PERSONAL INFORMATION':['Gender','1.Male','2.Female','Ethnicity','1.Chinese','2.Indian','3.Eurasian','Marital Status','1.Single','2.Married','3.Divorced'], 'VARIABLE':['gender', np.nan, np.nan,'ethn',np.nan,np.nan,np.nan,np.nan,np.nan,np.nan,np.nan]})
不应将婚姻状况选项复制到“变量”列,因为此处的前一行是 Nan。
我正在使用 np.where 选项,但不确定如何检查前一行的值。我不想使用 for 循环。
df['VARIABLE'] = np.where((df['PERSONAL
INFORMATION'].str.startswith(('\d+')) == True) & (df['VARIABLE'].isna() ==
True) & 3RD CONDITION FOR PREVIOUS ROW CHECK
你能帮我找出如何检查nan的前一行值吗?如果是 Nan,我不想复制数据。如果不是Nan,则必须复制数据