如果這是一個基本問題,我正在學習 python,很抱歉,但我無法從之前發布的問題中找到我正在尋找的具體答案。
我有下面的資料框,其中列出了雜貨、價格和購買日期。我想創建一個名為 year_month 的新列。所以基本上 03-22-2022 在這個新列中會變成 03-2022。不完全確定如何創建一個新列并按月對多個日期進行分組(?)。我的最終目標是制作一張圖表,顯示每月雜貨價格的變化。作為參考,我的日期列目前是日期時間格式。在此先感謝您的幫助!
我的資料框目前的樣子:
Item | Price| Date
Apples | 2.99 | 03-22-2022
Chicken | 8.99 | 4-01-2022
Bananas | 2.59 | 04-25-2022
Rice | 5.69 | 5-06-2022
我希望它看起來像什么:
Item | Price| Date | Year_Month
Apples | 2.99 | 03-22-2022 | 03-2022
Chicken | 8.99 | 4-01-2022 | 04-2022
Bananas | 2.59 | 04-25-2022 | 04-2022
Rice | 5.69 | 5-06-2022 | 05-2022
uj5u.com熱心網友回復:
一種使用pandas.to_datetimewith 的方法strftime:
df["Year_Month"] = pd.to_datetime(df["Date"]).dt.strftime("%m-%Y")
print(df)
輸出:
Item Price Date Year_Month
0 Apples 2.99 03-22-2022 03-2022
1 Chicken 8.99 4-01-2022 04-2022
2 Bananas 2.59 04-25-2022 04-2022
3 Rice 5.69 5-06-2022 05-2022
uj5u.com熱心網友回復:
要執行您所要求的操作,排序依據Date以及Series.dt.strftime()用于創建新Year_Month列可能是有意義的:
import pandas as pd
df = pd.DataFrame({'Item':['Apples','Chicken','Bananas','Rice'],'Price':[2.99,8.99,2.59,5.69],'Date':['03-22-2023','4-01-2022','04-25-2022','5-06-2022']})
df.Date = df.Date.astype('datetime64')
print(df)
df = df.sort_values('Date')
df['Year_Month'] = df.Date.dt.strftime('%m-%Y')
print(df)
輸入:
Item Price Date
0 Apples 2.99 2023-03-22
1 Chicken 8.99 2022-04-01
2 Bananas 2.59 2022-04-25
3 Rice 5.69 2022-05-06
輸出:
Item Price Date Year_Month
1 Chicken 8.99 2022-04-01 04-2022
2 Bananas 2.59 2022-04-25 04-2022
3 Rice 5.69 2022-05-06 05-2022
0 Apples 2.99 2023-03-22 03-2023
請注意,sort_values()確保上例中日期為 2023 的行成為結果中的最后一行。
uj5u.com熱心網友回復:
df['YearMOnth'] = df['Date'].astype('datetime64').dt.strftime('%m-%Y')
df
Item Price Date YearMOnth
0 Apples 2.99 03-22-2022 03-2022
1 Chicken 8.99 4-01-2022 04-2022
2 Bananas 2.59 04-25-2022 04-2022
3 Rice 5.69 5-06-2022 05-2022
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/492372.html
上一篇:通過減去兩次計算花費的時間
