【发布时间】:2020-12-04 09:23:59
【问题描述】:
我想更改数据框的行/列中的值,如下所示:
在区间内,当找到一个不等于1的值时,就应该放2。
例子:
初始df:
index event
2019-12-07 18:30:16 0
2019-12-07 19:30:16 0
2019-12-07 20:30:16 0
2019-12-07 21:30:16 0
2019-12-07 22:30:16 1
想要的df:
index event
2019-12-07 18:30:16 0
2019-12-07 19:30:16 0
2019-12-07 20:30:16 0
2019-12-07 21:30:16 0
2019-12-07 22:30:16 2
以下代码有效,但我无法更改值:
mask = (df.index > start_dates) & (df.index <= end_dates)
for k in range (0, len(df.loc[mask])):
if df.loc[mask].event[k] == 1:
df.loc[mask].loc[df.loc[mask].event == 1, "event"] = 2
我无法将最后一行代码中的值从 1 更改为 2。
我也试过这个...:
df.loc[mask].loc[df.loc[mask].event == 1, "event"] = 2
df.loc[mask].event[df.loc[mask].event == '1'] = 2
df.loc[mask].event[k] = 2
但以上几行都不起作用。
请帮助我。 :( 任何帮助都非常感谢!
【问题讨论】:
标签: python pandas dataframe time-series assign