簡體   English   中英

如何在熊貓框架中將特定月份的值與日期相加?

[英]How can i sum specific month value with date in pandas frame?

我有一個像這樣的數據集

ID,日期,NO,月

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

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

我還有幾個月要在DATE欄上做廣告。 例如我想在新列中看到2019年4月24日加上6個月-> 2019/10

錯誤是:

TypeError:只能將str(而不是“ int”)連接到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,ADD

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

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

您首先應該使用此函數將DATE列字符串轉換為datetime。 然后,您可以使用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)

通過Series.dt.to_period使用月份,因此可以增加列表或列中的天數,最后通過strftime將輸出轉換為字符串:

numbers = [3,6]
s = pd.to_datetime(df['DATE']).dt.to_period('m')
df['ADDED'] = (s + np.array(numbers)).dt.strftime("%Y/%m")
print (df)

   ID        DATE  NO    MONTH    ADDED
0   1  24/04/2019   6  2019/09  2019/07
1   1  24/04/2019   7  2019/09  2019/10

如果需要添加NO列:

s = pd.to_datetime(df['DATE']).dt.to_period('m')
df['ADDED'] = (s + df['NO']).dt.strftime("%Y/%m")
print (df)
   ID        DATE  NO    MONTH    ADDED
0   1  24/04/2019   6  2019/09  2019/10
1   1  24/04/2019   7  2019/09  2019/11

看起來你需要

import pandas as pd

numbers = [3,6]
df = pd.read_csv(filename, parse_dates=["DATE"])
df["ADDED"] = [(d +  pd.DateOffset(months=mon)) for d, mon in zip(df["DATE"], numbers)]  
df["ADDED"] = df["ADDED"].dt.strftime("%Y/%m")
print(df)  

輸出:

   ID       DATE  NO     MONTH    ADDED
0   1 2019-04-24   6  2019/09   2019/07
1   1 2019-04-24   7   2019/09  2019/10

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM