Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如果索引大于日期,则替换所有值_Python_Pandas - Fatal编程技术网

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