首页 > 解决方案 > Pandas 数据框的条件变化

问题描述

我想根据指标列更改列天数(这是一个日期时间列),即当指标等于 DTM 或 AMC 时,我想在天数列中添加 1 天。

 import pandas as pd
 df = pd.DataFrame({'days': [1, 2, 3],
            'indicator': ['BMO', 'DTM','AMC']})

所以结果看起来像这样:

   days indicator
0     1       BMO
1     3       DTM
2     4       AMC

标签: pythonpandasdatetime

解决方案


使用布尔掩码

df['days'] += (df.indicator.eq('AMC') | df.indicator.eq('DTM'))
print(df)

输出

   days indicator
0     1       BMO
1     3       DTM
2     4       AMC

作为替代方案,您可以使用isin

df['days'] += df.indicator.isin(('AMC', 'DTM'))
print(df)

您可以直接添加布尔掩码,因为在 Python 中,布尔值是整数(0, 1)


推荐阅读