如何为DataFrame添加字符串值最近一次出现的日期列
解决方案
你可以通过Pandas的groupby()结合shift()方法快速实现需求,具体步骤如下:
- 构造示例DataFrame(如果已有可跳过):
import pandas as pd data = { 'date': ['June 1', 'June 2', 'June 3', 'June 4', 'June 5'], 'letter': ['A', 'B', 'C', 'B', 'A'] } df = pd.DataFrame(data)
- 添加
last_date列:
通过按letter分组,对每组的date列执行向下偏移1位的操作,就能得到每个字母上一次出现的日期:
df['last_date'] = df.groupby('letter')['date'].shift(1)
- (可选)将空值替换为空字符串:
如果希望空值显示为空白而非默认的NaN,可以补充这一步:
df['last_date'] = df['last_date'].fillna('')
最终得到的结果如下:
| date | letter | last_date |
|---|---|---|
| June 1 | A | |
| June 2 | B | |
| June 3 | C | |
| June 4 | B | June 2 |
| June 5 | A | June 1 |
内容的提问来源于stack exchange,提问作者Robert Tuttle
相关产品推荐
相关产品推荐

