根据数据框中的列设置一个月数据的特定值

问题描述

我有一个数据框,该数据框由多列的每日数据组成;


            A B C D
01/01/2020  12 3 2 1 
02/01/2020  8  14 5 1
03/01/2020  45 4 1 3
.
.
.
.
31/12/2021  5 1 5 3

数据是自动生成的,但我可以按月或按日期覆盖数据。

我知道类似的事情可能会重置一个值,但是否有按月或在两个特定日期之间批量进行此设置的问题?

df.set_value('C','x',10)

任何帮助,不胜感激!

解决方法

首先创建DatetimeIndex并在DataFrame.loc中创建设置值,这里也为月的设置值partialy string indexing工作:

df.index = pd.to_datetime(df.index,dayfirst=True)

df.loc['2020-01-02','C'] = 100
df.loc['2020-01','B'] = 500
df.loc['2020-01-01':'2020-01-02','A'] = 0
#select multiple columns by list
df.loc['2020-01-03':'2021-12-31',['C','D']] = 1000
print (df)
             A    B     C     D
2020-01-01   0  500     2     1
2020-01-02   0  500   100     1
2020-01-03  45  500  1000  1000
2021-12-31   5    1  1000  1000