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

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

Pandas:從列表創建數據框,每個元素都有重復日期

Pandas:從列表創建數據框,每個元素都有重復日期

蠱毒傳說 2023-07-27 10:07:16
我查看了谷歌和這里試圖找到答案,但似乎無法正確地表達它以獲得有關這個確切問題的幫助。我想創建一個數據框,其中有一個名為“部門”的列,其中包含列表中的值,然后對于該列中的每個值,我想要相同的日期時間范圍。清單是:departments = ['Sales', 'Specialist', 'Purchase', 'HR']日期范圍是( df 是我與原始日期范圍不同的數據框。):pd.date_range(start=df.InvoiceDate.min(), end=df.InvoiceDate.max(), freq='1D')所以,我嘗試了這個,但由于形狀的原因它給了我一個錯誤,我明白只是不知道如何解決它。df2 = pd.DataFrame(department,(pd.date_range(start=df.InvoiceDate.min(), end=df.InvoiceDate.max(), freq='1D')), columns=['Department',"InvoiceDate"])期望的結果是這樣的:          Department    InvoiceDate    0        Sales      2019-03-25    1        Sales      2019-03-26    2        Sales      2019-03-27    ...    5     Specialist    2019-03-25    6     Specialist    2019-03-26    7     Specialist    2019-03-27    ...    8      Purchase     2019-03-25    9      Purchase     2019-03-26   10      Purchase     2019-03-27    ...   11         HR        2019-03-25   12         HR        2019-03-26   13         HR        2019-03-27
查看完整描述

2 回答

?
慕勒3428872

TA貢獻1848條經驗 獲得超6個贊

為此,您可以使用以下代碼:


聲明部門列表并獲取范圍內的日期列表(最小和最大)


departments = ['Sales', 'Specialist', 'Purchase', 'HR']


dates = pd.date_range(start=df.InvoiceDate.min(), end=df.InvoiceDate.max(), freq='1D').tolist()

你想要一個笛卡爾積,所以使用下面的函數


def cartesian_product(data):

? ? index = pd.MultiIndex.from_product(data.values(), names=data.keys())

? ? return pd.DataFrame(index=index).reset_index()


cartesian_product({'departments': departments,

? ? ? ? ? ? ? ? ? ?'date': a})

查看完整回答
反對 回復 2023-07-27
?
catspeake

TA貢獻1111條經驗 獲得超0個贊

您以錯誤的方式調用 pd.DataFrame() 。此外,作為數據提供的 2 個數組的大小也不同。要解決您可以執行以下操作:


 departments = ['Sales', 'Specialist', 'Purchase', 'HR']

 sizeDates = len(dates)

 sizeDep = len(departments)

 departments = departments * sizeDates

 dates = dates * sizeDep 

 dates = pd.date_range(start=df.InvoiceDate.min(), end=df.InvoiceDate.max(), freq='1D').tolist()

 departments = departments * len(dates)

 data = {'departments': departments,'date': dates}


 df2 = pd.DataFrame(data)


查看完整回答
反對 回復 2023-07-27
  • 2 回答
  • 0 關注
  • 174 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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