Python 如果索引大于日期,则替换所有值
我正在寻找有关熊猫数据框的帮助 我有一个具有以下结构的数据帧Python 如果索引大于日期,则替换所有值,python,pandas,Python,Pandas,我正在寻找有关熊猫数据框的帮助 我有一个具有以下结构的数据帧 Date(indexed) Total Clients Sales Headcount Total Products 2019-11-01 1005 5 4 2019-12-01 1033 5 5 2020-01-01 1045 10
Date(indexed) Total Clients Sales Headcount Total Products
2019-11-01 1005 5 4
2019-12-01 1033 5 5
2020-01-01 1045 10 6
2020-02-01 1124 10 10
2020-03-01 1199 10 11
如果日期在2020-01-01之后,如何用0填写产品总数栏
预期成果:
Date(indexed) Total Clients Sales Headcount Total Products
2019-11-01 1005 5 4
2019-12-01 1033 5 5
2020-01-01 1045 10 6
2020-02-01 1124 10 0
2020-03-01 1199 10 0
使用
.loc
根据布尔值分配值
# df['Date(indexed)'] = pd.to_datetime(df['Date(indexed)'])
df.loc[df['Date(indexed)'] > '2020-01-01','Total Products'] = 0
确保日期列包含时间戳
# Assuming `Date(indexed)` means that this column is the index of the dataframe.
df.index = pd.to_datetime(df.index)
然后使用.loc
将2020年及以后的所有值设置为零
df.loc['2020':, 'Total Products'] = 0
>>> df
Total Clients Sales Headcount Total Products
Date
2019-11-01 1005 5 4
2019-12-01 1033 5 5
2020-01-01 1045 10 0
2020-02-01 1124 10 0
2020-03-01 1199 10 0
使用.loc并将其分配回您尝试过什么,做过什么研究吗?谢谢!我的意思是这是一个索引列。如果我想对大于“2020-01-01”的所有内容使用您的逻辑,请将该列设置为0。我该怎么做?
df.loc['2020':,:]=0
df.loc['2020':, 'Total Products'] = 0
>>> df
Total Clients Sales Headcount Total Products
Date
2019-11-01 1005 5 4
2019-12-01 1033 5 5
2020-01-01 1045 10 0
2020-02-01 1124 10 0
2020-03-01 1199 10 0