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

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

如何通過特定變量在 pandas 數據框組中的行之間進行計算?

如何通過特定變量在 pandas 數據框組中的行之間進行計算?

猛跑小豬 2023-03-30 16:18:25
我有一個這樣的數據框:Time      Name     Value2007Q1    A        302007Q2    A        352007Q3    A        28...2007Q1    B        312007Q2    B        502007Q3    B        60...2007Q1    C        202007Q2    C        152007Q3    C        30我想添加另一個名為結果的列,并在每個名稱的每一行之間執(zhí)行計算。我想使用一個季度的值除以上一季度的值,然后減去 1,這類似于Value(Q2)/Value(Q1)-1。另外,我想按名稱分組,只在具有相同名稱的行內進行計算。結果應該是這樣的:Time      Name     Value    Results2007Q1    A        30       2007Q2    A        35       0.16672007Q3    A        28       -0.2...2007Q1    B        31       2007Q2    B        50       0.61292007Q3    B        60       0.2...2007Q1    C        202007Q2    C        15       -0.252007Q3    C        30       1每個“名稱”的開始時間段不應具有結果值。感謝所有能提供幫助的人!
查看完整描述

1 回答

?
蕪湖不蕪

TA貢獻1796條經驗 獲得超7個贊

使用DataFrame.groupbyonName并使用groupby.shift移動列Value然后使用Series.div將其除以Value,最后使用Series.sub減去1

df['Results']?=?df['Value'].div(df.groupby('Name')['Value'].shift()).sub(1)

結果:

print(df)

? ? ?Time Name? Value? ?Results

0? 2007Q1? ? A? ? ?30? ? ? ?NaN

1? 2007Q2? ? A? ? ?35? 0.166667

2? 2007Q3? ? A? ? ?28 -0.200000

3? 2007Q1? ? B? ? ?31? ? ? ?NaN

4? 2007Q2? ? B? ? ?50? 0.612903

5? 2007Q3? ? B? ? ?60? 0.200000

6? 2007Q1? ? C? ? ?20? ? ? ?NaN

7? 2007Q2? ? C? ? ?15 -0.250000

8? 2007Q3? ? C? ? ?30? 1.000000


查看完整回答
反對 回復 2023-03-30
  • 1 回答
  • 0 關注
  • 124 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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