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

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

pandas 在多個數據幀列上執行算術運算的最有效方法

pandas 在多個數據幀列上執行算術運算的最有效方法

喵喔喔 2023-06-27 14:13:37
我在 jupyter 筆記本上運行 python 3.8.5 和 pandas 1.1.0。我想將多個列除以同一數據幀的另一列中的相應元素。例如:import pandas as pddf = pd.DataFrame({'a': [2, 3, 4], 'b': [4, 6, 8], 'c':[6, 9, 12]})df? ? a? ?b? ?c0? ?2? ?4? ?61? ?3? ?6? ?92? ?4? ?8? ?12我想將列“b”和“c”除以“a”中的相應值,并用該除法的結果替換“b”和“c”中的值。所以上面的數據框變成:? ? a? ?b? ?c0? ?2? ?2? ?31? ?3? ?2? ?32? ?4? ?2? ?3我試過df.iloc[: , 1:] = df.iloc[: , 1:] / df['a']但這給出了:? ? a? ?b? ?c0? ?2? ?NaN NaN1? ?3? ?NaN NaN2? ?4? ?NaN NaN我通過執行以下操作使其工作:for colname in df.columns[1:]:? ? df[colname] = (df[colname] / df['a'])是否有通過避免 for 循環來更快地完成上述操作的方法?
查看完整描述

2 回答

?
開滿天機

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

差不多就這樣,將div與 一起使用axis=0

df.iloc[:,1:]?=?df.iloc[:,1:].div(df.a,?axis=0)


查看完整回答
反對 回復 2023-06-27
?
幕布斯7119047

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

df.b= df.b/df.a
df.c=df.c/df.a

或者

df[['b','c']]=df.apply(lambda x: x[['b','c']]/x.a ,axis=1)


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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