如何在Pandas DataFrame中创建新列存储下一行的日期值
解决方法:用pandas的
shift()方法生成下一行日期列 嘿,这个需求其实很简单,用pandas内置的shift()函数就能完美实现!下面是具体的代码步骤:
首先,先构造你提供的样本DataFrame:
import pandas as pd data = { 'No': [20, 20, 20, 20, 20], 'FlNo': [1826, 1112, 1234, 43, 1840], 'DATE': ['6/1/2017', '6/4/2017', '6/6/2017', '6/7/2017', '6/8/2017'], 'Loc': ['AAA', 'BBB', 'CCC', 'DDD', 'EEE'] } df = pd.DataFrame(data)
接下来,直接添加"New Date"列,利用shift(-1)把下一行的DATE值移到当前行:
df['New Date'] = df['DATE'].shift(-1)
执行完这段代码后,你的DataFrame就会变成你期望的样子:
| No | FlNo | DATE | Loc | New Date |
|---|---|---|---|---|
| 20 | 1826 | 6/1/2017 | AAA | 6/4/2017 |
| 20 | 1112 | 6/4/2017 | BBB | 6/6/2017 |
| 20 | 1234 | 6/6/2017 | CCC | 6/7/2017 |
| 20 | 43 | 6/7/2017 | DDD | 6/8/2017 |
| 20 | 1840 | 6/8/2017 | EEE | NaN |
简单解释一下:shift(-1)的作用是将整个列向上移动一位(也就是取后一行的值),所以最后一行没有下一行数据,自然就填充为NaN,完全符合你的需求~
内容的提问来源于stack exchange,提问作者PineNuts0
相关产品推荐
相关产品推荐

