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

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

根據列中的重復值重塑 Pandas 數據框

根據列中的重復值重塑 Pandas 數據框

楊__羊羊 2022-11-29 15:21:19
Pandas 非常新,可能在某個地方得到了回答,但我似乎無法找到我正在尋找的東西。假設我的數據集具有這種類型的結構Animal |  Age  |  Color  | LengthCat       1       Brown       50cmCat       2       White       60cmCat       3       Brown       55cmDog       1       White       99cmDog       2       White       129cmDog       3       White       105cm我怎樣才能最輕松地將它轉換為這種格式,在這種格式中,現有的列是水平附加的,而不是針對特定動物垂直排列的Animal |  Age_1  |  Color_1  | Length_1 |  Age_2 | Color_2 | Length_2 | Age_3 | Color_3 | Length_3Cat       1        Brown       50cm         2       White      60cm       3       Brown      55cmDog       1        White       99cm         2       White      129cm      3       White      105cm也許不是最好的示例標簽,但希望能夠理解我也非常感謝答案的鏈接。
查看完整描述

1 回答

?
桃花長相依

TA貢獻1860條經驗 獲得超8個贊

創建MultiIndexby GroupBy.cumcountand DataFrame.set_index,然后 reshape by DataFrame.unstackand sortinf MultiIndexin 列的第二級,然后用f-strings 將其展平并將索引轉換為列:


df1 = (df.set_index(['Animal', df.groupby('Animal').cumcount().add(1)])

         .unstack()

         .sort_index(axis=1, level=1))

df1.columns = [f'{a}_' for a, b in df1.columns]

df1 = df1.reset_index()

print (df1)

  Animal  Age_1 Color_1 Length_1  Age_2 Color_2 Length_2  Age_3 Color_3  \

0    Cat      1   Brown     50cm      2   White     60cm      3   Brown   

1    Dog      1   White     99cm      2   White    129cm      3   White   


  Length_3  

0     55cm  

1    105cm  


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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