簡體   English   中英

創建月份和年份列中沒有天數的日期 pandas dataframe

[英]Create Dates without days present in month & year columns pandas dataframe

  1. 我想使用 lambda function 創建一個名為“Month_Year”的新列。其值應為:2020 年 1 月為“01-01-2020”,2020 年 2 月為“01-02-2020”,依此類推。 數據集僅包含 month:{jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec} obj dtype。 我必須將這個 month_names 轉換為 month_numbers。 數據集還有年份列,其中包含 2020 - 2022 int dtype 的數據。 我想使用月和年為此數據集創建日期。 在此處輸入圖像描述
{year = pd.to_datetime(df1.Year, format='%Y').dt.year
df1['Month'] = pd.to_datetime(df1.Month, format='%b').dt.month}


cal = calendar.Calendar()
for i in cal.itermonthdays3(year=year, month=month):
    print(i)
/// Error: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
{2nd way}`
def date_iter(year, month):
    for i in range(1, calendar.monthrange(year, month) + 1):
        yield date(year, month, i)

for d in date_iter(year, month):
    print(d)
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

如何根據月份和年份列創建日期列?

嘗試:

df["Month_Year"] = pd.to_datetime(df["Month"] + "-" + df["Year"].astype(str))
print(df)

印刷:

   Month  Year Month_Year
0    Jan  2020 2020-01-01
1    Feb  2021 2021-02-01
2    Mar  2022 2022-03-01
3    Apr  2020 2020-04-01
4    May  2021 2021-05-01
5    Jun  2022 2022-06-01
6    Jul  2020 2020-07-01
7    Aug  2021 2021-08-01
8    Sep  2022 2022-09-01
9    Oct  2020 2020-10-01
10   Nov  2021 2021-11-01
11   Dec  2022 2022-12-01

輸入 dataframe:

   Month  Year
0    Jan  2020
1    Feb  2021
2    Mar  2022
3    Apr  2020
4    May  2021
5    Jun  2022
6    Jul  2020
7    Aug  2021
8    Sep  2022
9    Oct  2020
10   Nov  2021
11   Dec  2022

暫無
暫無

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

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