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

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

使用字符串函數 arg 命名 pandas DF 中的新功能

使用字符串函數 arg 命名 pandas DF 中的新功能

泛舟湖上清波郎朗 2022-06-02 12:13:00
我正在嘗試編寫一個 python 函數,它允許我向 pandas df 添加功能以進行機器學習。我想我誤解了如何在 python 函數中使用字符串。該函數查看 df 的一行,檢查行標識符是否在未來幾個月(以下行數)具有相同的標識符。如果是這樣,它將未來行的“開始”特征的值添加到新特征列,否則將初始行的“結束”。這是一個定制的班次功能。一旦我添加了這個功能,我想再添加一列 1 或 0 作為 df 的新功能,并帶有適當的列標簽。這將被標記為“feat_so_many_months_in_future_is_higher_or_lower”。問題是我什至無法到達閾值部分附近的第二個二進制文件。我在添加第一個具有適當名稱的新功能時遇到問題。def binary_up_down(name_of_new_feature, months_in_future, percent_threshold):    name_of_new_feature = []     for i in range(0, df.shape[0], 1):         try:            if df['identifier'][i]==df['identifier'][i + months_in_future]:                name_of_new_feature.append(df['start'][i + months_in_future])            else:                name_of_new_feature.append(df['end'][i])        except KeyError:                name_of_new_feature.append(df['end'][i])    df[str(name_of_new_feature)]=name_of_new_feature    ### Add test to check if shifted value is above or below threshold and name new feature          appropriately ###    return df我的想法是調用函數如下:binary_up_down('feat_value_in_1m', 1, 5)#Thenbinary_up_down('feat_value_in_3m', 3, 5) # and on an on...當我運行代碼時,這一行似乎是問題所在:df[str(name_of_new_feature)] = name_of_new_feature...因為它將所有新的特征列值添加為列名!非常感謝任何指針!
查看完整描述

1 回答

?
互換的青春

TA貢獻1797條經驗 獲得超6個贊

您將替換name_of_new_feature為函數第一行中的列表。我建議將其重命名為value_of_new_feature


def binary_up_down(name_of_new_feature, months_in_future, percent_threshold):

    value_of_new_feature = [] 

    for i in range(0, df.shape[0], 1): 

        try:

            if df['identifier'][i]==df['identifier'][i + months_in_future]:

                value_of_new_feature .append(df['start'][i + months_in_future])

            else:

                value_of_new_feature .append(df['end'][i])

        except KeyError:

                value_of_new_feature .append(df['end'][i])


    df[name_of_new_feature]=value_of_new_feature 


    ### Add test to check if shifted value is above or below threshold and name new feature  

        appropriately ###


    return df


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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