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

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

如何執(zhí)行多個數(shù)學運算來派生新列?

如何執(zhí)行多個數(shù)學運算來派生新列?

梵蒂岡之花 2021-06-18 18:01:54
我有一個 df 看起來像這樣:consumer_id      order_total1                    52                    63                    71                    5對于每一個消費者consumer_id我想取平均值所有的order_total每consumer_id創(chuàng)造一個新的列SID基于以下規(guī)則:if new `order_total` >= 7:      SID = 3elif new `order_total` >= 6 OR <7:      SID = 2else:      SID = 1新 df 應如下所示(consumer_id1,平均值為 5):consumer_id      order_total   SID1                    5          12                    6          23                    7          31                    5          1這是我在沒有平均 per 的情況下嘗試的 if 語句consumer_id:if df.order_total >= 150:    df['SID'] = 3elif [df.order >= 50] & [df.order< 100]:    df['SID'] = 2else:    df['SID'] = 1我得到錯誤:ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
查看完整描述

3 回答

?
MYYA

TA貢獻1868條經驗 獲得超4個贊

嘗試apply:


def f(x):

    if x >= 7:

        SID = 3

    elif x >= 6 and x<7:

        SID = 2

    else:

        SID = 1

    return SID


df['SID']=df['order_total'].apply(f)


查看完整回答
反對 回復 2021-06-22
?
忽然笑

TA貢獻1806條經驗 獲得超5個贊

使用 groupby 和 transform 來獲取包含每個 consumer_id 的平均訂單總數(shù)的系列,然后將函數(shù)應用于該系列以創(chuàng)建結果系列。


def sid_assign(x):

    if x >= 7:

        return 3

    if x >= 6 | x < 7:

        return 2

    else:

        return 1


id_sums = df.groupby('consumer_id').order_total.transform('mean')

df['SID'] = id_sums.apply(sid_assign)


print(df)


   consumer_id  order_total  SID

0            1            5    1

1            2            6    2

2            3            7    3

3            1            5    1


查看完整回答
反對 回復 2021-06-22
  • 3 回答
  • 0 關注
  • 155 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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