第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

基于另一個(gè)數(shù)據(jù)框創(chuàng)建新的 pandas 數(shù)據(jù)框

基于另一個(gè)數(shù)據(jù)框創(chuàng)建新的 pandas 數(shù)據(jù)框

編輯:pandas 1.0.5有一個(gè)bug,升級(jí)到1.1.1后就沒(méi)有錯(cuò)誤了。我有一個(gè) pandas 數(shù)據(jù)框,如下所示:   Name      Date      Price      Label   Y      Z   foo1     1/1/20      100       1       _      _   foo1     1/1/20      200       2       _      _    .       .           .         .       .      .    .       .           .         .       .      .   foo1     1/8/20      240       1       _      _   foo2     1/2/20      500       1       _      _    .       .           .         .       .      .    .       .           .         .       .      .   foo2     1/7/20      423       4       _      _    .       .           .         .       .      .    .       .           .         .       .      .該列有 80 個(gè)唯一值Name,即 foo1 - foo80有 20 個(gè)唯一Date值有 4 個(gè)唯一Label值Y 和 Z 列與新數(shù)據(jù)框無(wú)關(guān)我想創(chuàng)建一個(gè)表 st,它將有 80 行(每行對(duì)應(yīng)每個(gè)名稱)和 20*4 + 1 列(每個(gè)日期標(biāo)簽組合 20x4,名稱 1 列)。最終的數(shù)據(jù)框應(yīng)如下所示:**Name 1/1/20(Label1)  1/1/20(Label2)  1/1/20(Label3)  1/1/20(Label4)  1/2/20(Label1)    ...    4/7/20(Label4)** foo1    100             200              300             -1              -1                        -1 foo2    -1               -1               -1             -1              500                       -1..............................-1 表示原始條目中沒(méi)有特定名稱-日期-標(biāo)簽組合的條目。我基本上是 pandas 的新手,我當(dāng)然可以手動(dòng)迭代地構(gòu)建數(shù)據(jù)框(if..else 解決方案),但我相信有一個(gè)更快、可讀、更簡(jiǎn)單的解決方案。
查看完整描述

1 回答

?
桃花長(zhǎng)相依

TA貢獻(xiàn)1860條經(jīng)驗(yàn) 獲得超8個(gè)贊

您正在尋找df.pivot


df = df.pivot(index='Name', columns=['Date', 'Label'], values='Price')

警告:如果任何名稱-日期-標(biāo)簽組合重復(fù)(即出現(xiàn)在多行中),則會(huì)引發(fā)錯(cuò)誤。使用pivot_table或更好groupby+unstack


如果Name、Date、 和Label在索引中,則使用unstack而不是pivot


使用示例數(shù)據(jù)更新


df = pd.DataFrame({

    # 'A': [160, 457, 457, 482, 482, 482, 482, 423, 223, 506],

    # 'B': ['8/27/2015 0:00','10/15/2015 0:00','10/15/2015 0:00','10/28/2015 0:00','10/28/2015 0:00','10/28/2015 0:00','10/28/2015 0:00','9/29/2015 0:00','9/9/2015 0:00','11/9/2015 0:00'],

    'Date': ['8/28/2015 0:00','10/16/2015 0:00','10/16/2015 0:00','10/29/2015 0:00','10/29/2015 0:00','10/29/2015 0:00','10/29/2015 0:00','9/30/2015 0:00','9/10/2015 0:00','11/10/2015 0:00'],

    # 'C': [5, 5, 5, 5, 5, 5, 5, 5, 5, 5],

    # 'D': [1271, 1825, 1825, 1455, 1455, 1455, 1455, 2522, 1385, 1765],

    'Price': [1058, 1685, 1615, 1195, 1255, 1279, 1295, 2285, 1285, 1665],

    'Label': [3, 3, 2, 1, 3, 4, 2, 2, 1, 4],

    # 'E': [13, 127, 127, -1, -1, -1, -1, -1, -1, -1],

    'Name': ['foo1','foo2','foo2','foo3','foo3','foo3','foo3','foo4','foo4','foo3'],

    # 'F': [4, 4, 4, 3, 3, 3, 3, 3, 3, 3],

    # 'G': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],

    # 'H': ['Friday','Friday','Friday','Thursday','Thursday','Thursday','Thursday','Wednesday','Thursday','Tuesday'],

    # 'I': [213, 140, 210, 260, 200, 176, 160, 237, 100, 100],

    # 'J': [16.758457907159716,7.671232876712329,11.506849315068493,17.869415807560138,13.745704467353955,12.096219931271474,10.996563573883162,9.397303727200637,7.220216606498194,5.6657223796034]

})

df.Date = pd.to_datetime(df.Date)

df = df.pivot(index='Name', columns=['Date', 'Label'], values='Price')

df = df.fillna(-1)

print(df)

輸出


Date  2015-08-28 2015-10-16         2015-10-29  ...         2015-09-30 2015-09-10 2015-11-10

Label          3          3       2          1  ...       2          2          1          4

Name                                            ...

foo1      1058.0        NaN     NaN        NaN  ...     NaN        NaN        NaN        NaN

foo2         NaN     1685.0  1615.0        NaN  ...     NaN        NaN        NaN        NaN

foo3         NaN        NaN     NaN     1195.0  ...  1295.0        NaN        NaN     1665.0

foo4         NaN        NaN     NaN        NaN  ...     NaN     2285.0     1285.0        NaN


[4 rows x 10 columns]


查看完整回答
反對(duì) 回復(fù) 2023-07-11
  • 1 回答
  • 0 關(guān)注
  • 135 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)