熊猫根据另一列过滤一列

时间:2020-08-19 13:56:35

标签: python-3.x pandas dataframe filter

给出此数据框

df = pd.DataFrame(\
{'name': {0: 'Peter', 1: 'Anna', 2: 'Anna', 3: 'Peter', 4: 'Simon'},
 'Status': {0: 'Finished',
  1: 'Registered',
  2: 'Cancelled',
  3: 'Finished',
  4: 'Registered'},
 'Modified': {0: '2019-03-11',
  1: '2019-03-19',
  2: '2019-05-22',
  3: '2019-10-31',
  4: '2019-04-05'}})

如何根据状态进行比较和过滤?我希望“修改”列保留“状态”为“完成”或“已取消”的日期,并在不满足条件的地方填写空白。

Wanted output:

name      Status        Modified
0  Peter  Finished      2019-03-11
1   Anna  Registered  
2   Anna  Cancelled     2019-05-22
3  Peter  Finished      2019-10-31
4  Simon  Registered  

1 个答案:

答案 0 :(得分:2)

where + isin进行确认

df.Modified.where(df.Status.isin(['Finished','Cancelled']),'',inplace=True)
df
Out[68]: 
    name      Status    Modified
0  Peter    Finished  2019-03-11
1   Anna  Registered            
2   Anna   Cancelled  2019-05-22
3  Peter    Finished  2019-10-31
4  Simon  Registered