我有一个带有日期时间索引和两列名为'text'
和'labels'
的pandas DataFrame。我想要将值为2的标签
赋值给在值为50的日期时间范围内
且存在于DataFrame中的标签。
我尝试使用以下方法:
df[df['labels']==2]['2017-02-01 05:03:25+00:00':'2017-02-01 05:05:55+00:00']['labels']=50
我可以查看按DataTime索引(行)和列筛选的DataFrame,但无法对其进行分配。同时也尝试了以下方法:
df.loc[df['2017-03-13 00:00:00':'2017-03-23 00:00:00'], df['labels']==2]=50
但它抛出了一个错误。
df看起来像这样
created text labels
2017-02-01 05:03:25+00:00 break john cena eyelash grow 4
2017-02-01 05:05:55+00:00 eyelash tooooo much sweeti definit 2
2017-02-01 05:14:57+00:00 come eyelash 2
created是日期时间索引,'text'和'labels'是DataFrame的列
df[df['labels']==2]['2017-02-01 05:03:25+00:00':'2017-02-01 05:05:55+00:00']['labels']
筛选DataFrame但不将其赋值为一个值
将DataFrame分配给创建时间在'2017-02-01 05:03:25+00:00':'2017-02-01 05:05:55+00:00'
之间并且标签为2
,对于标签为50的情况,我期望结果如下:
created text labels
2017-02-01 05:03:25+00:00 break john cena eyelash grow 4
2017-02-01 05:05:55+00:00 eyelash tooooo much sweeti definit 50
2017-02-01 05:14:57+00:00 come eyelash 2