【发布时间】:2021-10-08 03:42:46
【问题描述】:
我正在尝试从另一行获取一个值,即每个人的“第二天”数据。假设我有这个示例数据集:
import pandas as pd
data= {'date' : [20210701, 20210703, 20210704, 20210703, 20210705, 20210705],
'name': ['Dave', 'Dave', 'Dave', 'Sue', 'Sue', 'Ann'],
'a' : [1,0,1,1,1,0]}
df = pd.DataFrame(data)
df['date'] = pd.to_datetime(df['date'], format='%Y%m%d')
我正在尝试创建另一列,其值为第二天的“a”列。
所以,我创建了一个“next_day”列:
df['next_date'] = df['date'] + pd.Timedelta(days=1)
但我被困在下一步了。
最终的数据框应如下所示:
import pandas as pd
data= {'date' : [20210701, 20210703, 20210704, 20210703, 20210704, 20210705],
'name': ['Dave', 'Dave', 'Dave', 'Sue', 'Sue', 'Ann'],
'a' : [1,0,1,1,1,0],
'new_column' : [np.nan, 1, np.nan, 1, np.nan, np.nan ]}
df = pd.DataFrame(data)
df['date'] = pd.to_datetime(df['date'], format='%Y%m%d')
如您所见,新列为每个人取第二天的值,为没有数据的人取 NaN。
【问题讨论】: