【问题标题】:Pandas filter a column based on another columnPandas 根据另一列过滤一列
【发布时间】:2020-12-08 19:38:44
【问题描述】:

给定这个数据框

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'}})

如何根据状态进行比较和过滤?我希望 Modified 列保留 Status 为“Finished”或“Cancelled”的日期,并在不满足条件的地方填写空白。

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  

【问题讨论】:

    标签: python-3.x pandas dataframe filter


    【解决方案1】:

    检查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            
    

    【讨论】:

    • 工作就像一个魅力!谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-05
    • 2020-08-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多