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

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

如何在數據框中的整列中將 df['2'] 除以 df['1'] ?

如何在數據框中的整列中將 df['2'] 除以 df['1'] ?

泛舟湖上清波郎朗 2023-08-08 17:06:17
我試圖通過將每個索引除以前一個索引來找到數據框中導航的變化。我對此很陌生并且很困惑!希望你能幫忙。謝謝!t1 = 0d = []for f in final_df['nav']:    t = float(f)    d.append(t / t1)    t1 = tprint(d)
查看完整描述

4 回答

?
函數式編程

TA貢獻1807條經驗 獲得超9個贊

shift在系列上。

d?=?final_df['nav']?/?final_df['nav'].shift(-1)

不過,您必須弄清楚如何處理最后一項,因為沒有什么可除的。


查看完整回答
反對 回復 2023-08-08
?
紅顏莎娜

TA貢獻1842條經驗 獲得超13個贊

嘗試除以移位


from pandas import pandas as pd


final_df = pd.DataFrame({"Col1": [10, 20, 15, 30, 45],

                   "Col2": [13, 23, 18, 33, 48],

                   "nav": [3, 6, 9, 27, 108]},

                  index=pd.date_range("2020-01-01", "2020-01-05"))

final_df["change"] = final_df["nav"].div(final_df["nav"].shift(1))


print(final_df)


            Col1  Col2  nav  change

2020-01-01    10    13    3     NaN

2020-01-02    20    23    6     2.0

2020-01-03    15    18    9     1.5

2020-01-04    30    33   27     3.0

2020-01-05    45    48  108     4.0


查看完整回答
反對 回復 2023-08-08
?
臨摹微笑

TA貢獻1982條經驗 獲得超2個贊

您不需要為此實現循環函數,請使用 pandaspct_change函數

df['nav'].pct_change()


查看完整回答
反對 回復 2023-08-08
?
喵喵時光機

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

您可以嘗試使用 .shift 方法作為分母。這會將值降低 1。


在下面的示例中,發生的情況是

500 / NaN = NaN

415 / 500 = .83

293 / 415 = .71

...等等


df = df = pd.DataFrame({'value1':[500,415,293,126,115,140,90,190,217]})


# the first row will be NaN

# the first row of the df['value2'].shift() will be empty 

# if you have a value for the first row you can fill it with .fillna(value for first row denomenator)

df['new_value'] = df['value1'] / df['value1'].shift() # .fillna(value of first denomenator)

df


查看完整回答
反對 回復 2023-08-08
  • 4 回答
  • 0 關注
  • 209 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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