根据空列为结果创建新列

2024-10-02 08:18:16 发布

您现在位置:Python中文网/ 问答频道 /正文


I have table as below, in row number 2("AAPOP"), 6("AB"), 9("QDA98"), I don't have any value in "remarks" and "details" column


Particulars          Remark    Details         AMT  
AAPOP               
QP                       av      daf            7   
WP                       ad      dae            8   
ST                       df      dds            9   
AB              
RR                      dasd      df            6   
RA                       dsf      we            8   
QDA98               
DRS                      sd       df            5   
DRW                      sd       dsa           3   
UTS                     dad       fds           6   

I want to create "log" column and paste value for those column who is not contain any value in column 'remarks' and 'details', in below example it is "AAPOP, "AB", "QDA98"



Particulars         Remark    Details   log      AMT
AAPOP                                  AAPOP    
QP                     av       daf               7
WP                     ad       dae               8
ST                     df       dds               9
AB                                       AB 
RR                    dasd       df               6
RA                     dsf       we               8
QDA98                                   QDA98   
DRS                     sd       df               5
DRW                     sd      dsa               3
UTS                    dad      fds               6





Tags: andindfabvaluehaveanycolumn
3条回答

IIUC,试试这个

df['log']= np.where((df.Remark.isnull()) & (df.Remark.isnull()),df.Particulars,'')
df

输入

Particulars     Remark  Details     AMT
0   AAPOP   None    None    NaN
1   QP  av  daf     7.0
2   WP  ad  dae     8.0
3   ST  df  dds     9.0
4   AB  None    None    NaN
5   RR  dasd    df  6.0
6   RA  dsf     we  8.0
7   QDA98   None    None    NaN
8   DRS     sd  df  5.0
9   DRW     sd  dsa     3.0
10  UTS     dad     fds     6.0

输出

Particulars     Remark  Details     AMT     log
0   AAPOP   None    None    NaN     AAPOP
1   QP  av  daf     7.0     
2   WP  ad  dae     8.0     
3   ST  df  dds     9.0     
4   AB  None    None    NaN     AB
5   RR  dasd    df  6.0     
6   RA  dsf     we  8.0     
7   QDA98   None    None    NaN     QDA98
8   DRS     sd  df  5.0     
9   DRW     sd  dsa     3.0     
10  UTS     dad     fds     6.0     

您可能想试试这个:

def log_func(row):
    # return the value in Particulars column if these columns are empty
    if not any([row['Remark'], row['Details'], row['AMT']])
        return row['Particulars']
    else 
        return ''

d['log'] = d.apply(log_func, axis=1)

我相信这应该管用,虽然我不是100%肯定。如果没有,解决方案应该非常相似。我明天会测试它并更新我的帖子。你知道吗

df['log'] = ''
df.loc[(df['Remark'] == '') & (df['Details'] == ''), 'log'] = df['Particulars']

相关问题 更多 >

    热门问题