使用以前的日期从现有列中创建新的Pandas列

小说

我有一个数据集,其中每个月的值如下:

Date         Platform    Name   Value
1-31-2019    Pine        Dave   100
1-31-2019    Pine        Sam    300
1-31-2019    Cherry      Sam    200
2-28-2019    Pine        Dave   150
2-28-2019    Pine        Sam    200
2-28-2019    Cherry      Sam    250

我需要使用上个月的值来运行计算,并且我想添加一列作为上个月的值。所以我希望最终结果看起来像

Date         Platform    Name   Value    Previous Value
1-31-2019    Pine        Dave   100      NaN
1-31-2019    Pine        Sam    300      NaN
1-31-2019    Cherry      Sam    200      NaN
2-28-2019    Pine        Dave   150      100
2-28-2019    Pine        Sam    200      300
2-28-2019    Cherry      Sam    250      200

我将日期列设置为datetime数据类型。是否可以进行日期计算以创建新列?

ky

IIUC,您可以执行以下操作:

d=df.set_index([df.Date.dt.month,'Platform','Name'])['Value'].to_dict()
df['Previous_Value']=(df.set_index([df.Date.dt.month-1,'Platform','Name']).
                      index.to_series().map(d).reset_index(drop=True))
print(df)

        Date Platform  Name  Value  Previous_Value
0 2019-01-31     Pine  Dave    100             NaN
1 2019-01-31     Pine   Sam    300             NaN
2 2019-01-31   Cherry   Sam    200             NaN
3 2019-02-28     Pine  Dave    150           100.0
4 2019-02-28     Pine   Sam    200           300.0
5 2019-02-28   Cherry   Sam    250           200.0

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

根据 if 和现有列在 pandas 中创建新列

使用Python从Pandas数据框中的现有日期时间列创建星期几列

使用DOMDocument在现有HTML表中创建新列

从 Pandas Dataframe 中的现有日期和时间列创建日期时间列的更快方法

创建新列以存储现有日期时间列中的一年的季度

如何从Pandas数据框中的现有列创建新列

通过对现有列进行分组和执行操作,在 pandas df 中创建新列

如何根据 Pandas 中现有列的迭代创建新列?

Pandas 基于现有列使用链式规则创建新列

使用Pandas df的字典基于现有列创建新列

根据条件以及现有的日期列和时间增量列创建新的日期列

根据现有列中的变量创建新列

熊猫:根据现有列中的值创建新列

如何基于现有列在 Python 中创建新列

根据现有列中的数据创建新列

根据R中的现有列创建新列

从python中的现有列创建新列

根据熊猫中的现有列创建新列

根据现有列中的值创建新列

基于现有列创建新列。使用 1 或 0

如何使用daframe中现有列中的值创建新列

如何通过使用python中的现有列创建以其他列为条件的新列

如何使用条件从现有列在数据框中创建新列?

R dataframe使用/ / all_of / mutate_if从现有列中创建多个新列

如何使用熊猫从现有列中的值创建新的二分列

在现有表中创建新列并使用 python 更新列

使用 Python 中的 Split 函数从现有列值创建新列

如何使用现有列的条件在 Dataframe 中创建新列?

从 R 中的现有列值创建新列(使用其他列作为键)