![](/img/trans.png)
[英]How to return a value based on column value and Timestamp using user-defined function in pandas
[英]Create a new pandas column with a value from a user-defined function
嘗試使用我創建的為該新列返回值的函數在熊貓數據框上創建新列時,出現了SettingWithCopyWarning。 我正在使用movielens數據集並預測電影上的用戶評級。
這是我的數據框的一個示例:
現在,如果我想添加一個名為“ prediction”的新列,該列將user_id和item_id發送到我的函數並返回預測,則我已經遵循了另一個問題的建議
因此,使用代碼:
df['pred'] = df.apply(lambda x: predict_rating(x['user_id'], x['item_id']), axis =1)
但是我一直在獲取SettingWithCopyWarning。
:44:SettingWithCopyWarning:試圖在DataFrame的切片副本上設置一個值。 嘗試改用.loc [row_indexer,col_indexer] = value參見文檔中的警告: http : //pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
任何的建議都受歡迎。
做這個 ,
df.loc [:,'pred'] = df.apply(lambda x:預言等級(x ['user_id'],x ['item_id']),軸= 1)
這個最小的例子對我有用:
import pandas as pd
df = pd.DataFrame({'user_id':[22,224], 'item_id': [377,29], 'rating': [1,3]})
def prediction_func(row):
return row['user_id'] + row['item_id']
df['prediction'] = df.apply(prediction_func, axis=1)
print(df.head())
輸出:
item_id rating user_id prediction
0 377 1 22 399
1 29 3 224 253
我認為這與我的功能有關,因此將深入研究並報告任何有趣的內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.