![](/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.