亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我想根據年份拆分我的數據框

我想根據年份拆分我的數據框

斯蒂芬大帝 2021-11-02 20:13:21
我有一個包含 datetime64 格式的日期值列的數據框。我想根據年份將我的數據幀拆分為單獨的數據幀。我寫了下面的代碼,它有效但非常不切實際。希望有人有更好的解決方案!# import libsimport numpy as npimport pandas as pdfrom random import sample# Make some random dataframe with two columnsdate = np.arange('2005-02', '2008-03', dtype='datetime64[D]')status = ["X"]*(int(round(0.9*len(date),0))) +['y']*(int(round(0.05*len(date),0)))+['z']*(int(round(0.05*len(date),0)))newstatus = sample(status, len(status))data = {'Data': date, 'Status': newstatus}df = pd.DataFrame(data)# Extract year from date and make dummies index for splittingdf['Year'] = pd.DatetimeIndex(df['Data']).yeardf = pd.get_dummies(df, columns = ['Year'])# Split on dummiesdf_2007, df_2006, df_2005, df_2008  = df, df, df, dfdf_2008= df_2008[df_2008.Year_2008 != 0]df_2007 = df_2007[df_2007.Year_2007 != 0]df_2006= df_2006[df_2006.Year_2006 != 0]df_2005= df_2005[df_2005.Year_2005 != 0]#Remove Dummiesyears = ['Year_2005', 'Year_2006', 'Year_2007', 'Year_2008']df_2008 = df_2008.drop(years, axis = 1)df_2007 = df_2007.drop(years, axis = 1)df_2006 = df_2006.drop(years, axis = 1)df_2005 = df_2005.drop(years, axis = 1)
查看完整描述

1 回答

?
HUWWW

TA貢獻1874條經驗 獲得超12個贊

也許這可以幫助你:


years = df['Data'].dt.year.unique() # I'm guessing Data should be Date really but I'll go along with it.

dfs = {y: df[df['Data'].dt.year == y] for y in years}

這將創建一個字典,其中鍵是年份,值是對應于每一年的數據框。這意味著dfs[2008]為您提供包含 2008 年數據的數據框。


查看完整回答
反對 回復 2021-11-02
  • 1 回答
  • 0 關注
  • 160 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號