T3J*_*J45 3 python dataframe pandas
请注意,我是在函数中执行此操作的,并且我已经提到了一个非常好的线程。
这是python函数,传递的参数是从用户那里获取的
def recommend(uid):
ds = pd.read_csv("pred_matrix-full_ubcf.csv")
records = ds.loc[ds['uid'] == uid]
for recom in records:
print recom
Run Code Online (Sandbox Code Playgroud)
数据格式:
uid iid rat
344 1189 5
344 1500 5
344 814 5
736 217 3.3242361285
736 405 3.3238380154
736 866 3.323500531
331 1680 2
331 1665 2
331 36 1.999918585
Run Code Online (Sandbox Code Playgroud)
无法找到我出错的地方,我正在关注this1线程,但无法得到它。
要迭代行,请使用df.iterrows():
In [53]: records = df[df['uid'] == query]
In [54]: for index, row in records.iterrows():
...: print(row['uid'], row['iid'], row['rat'])
...:
344.0 1189.0 5.0
344.0 1500.0 5.0
344.0 814.0 5.0
Run Code Online (Sandbox Code Playgroud)
还有另外两种可能的方法来选择数据。您可以使用boolean indexing:
In [4]: query = 344
In [7]: df[df['uid'] == query]
Out[7]:
uid iid rat
0 344 1189 5.0
1 344 1500 5.0
2 344 814 5.0
Run Code Online (Sandbox Code Playgroud)
您还可以使用DataFrame.query函数:
In [8]: df.query('uid == %d' %query)
Out[8]:
uid iid rat
0 344 1189 5.0
1 344 1500 5.0
2 344 814 5.0
Run Code Online (Sandbox Code Playgroud)