python - 如何将特定月份值与 pandas 数据框中的日期相加?

标签 python pandas date sum

我有一个这样的数据集

ID,DATE,NO,MONTH

1,24/04/2019,6,2019/09

1,24/04/2019,7,2019/09

我有几个月的时间为 DATE 列做广告。 例如,我想在我的新列中看到 24/04/2019 添加 6 个月 -> 2019/10

错误是:

TypeError: can only concatenate str (not "int") to str

import pandas as pd

dataset = pd.read_csv("denemedf.txt", delimiter=",")
print(dataset['DATE'])
dataset['ADDED'] = 0 #new column
data_to_Array = np.asarray(dataset['DATE'])
#print(data_to_Array)

numbers = [3,6]

for i in range(len(data_to_Array)):
    added_value = data_to_Array[i] + numbers[i]
    dataset['ADDED'][i] = added_value

from datetime import datetime
print ( dataset['ADDED'].strftime("%Y/%m") )

我怎样才能在数据集['ADDED']中看到这个结果代表今年/月?

我希望我清楚地解释了我想做什么。

预期结果是这样的:

ID,DATE,NO,MONTH, ADDED

1,24/04/2019,6,2019/09,2019/7

1,24/04/2019,7,2019/09,2019/10

最佳答案

您应该首先使用 function 将 DATE 列字符串转换为日期时间。 然后,您可以使用 lambda 函数来创建新列 pandas DateOffset .

dataset = pd.DataFrame({'DATE': ['24/04/2019', '24/04/2019'], 'NO': [6,7]})
dataset['DATE'] = dataset.apply(lambda x: datetime.datetime.strptime(x['DATE'], '%d/%m/%Y'), axis=1)
dataset['ADDED'] = dataset.apply(lambda x: x['DATE'] + pd.DateOffset(months=x['NO']), axis=1)

关于python - 如何将特定月份值与 pandas 数据框中的日期相加?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55845767/

相关文章:

python - Django - 如何预填充管理表单字段

python - 规范错误: nested renamer is not supported error while using agg function on dictionary

linux - 一个月中每一天的两次之间的日期值

algorithm - 从微秒转换为小时、分钟、秒和毫秒

php - 从 yyyymmdd 格式转换为 PHP 中的日期

python - 如何分配给通过解包 triu_indices 获得的 numpy 切片 View

python - 在 Windows 上的 VSCode 中调试 Python C/C++ 扩展

python - CVXPY 中的约束不遵循 DCP 规则

python - Plotly-Dash:如何制作带有交叉表的数据框,仍显示原始列名称?

python - python pandas 重组索引中的内存泄漏