如何用列名替换 pandas 中的值
How to replace values in pandas with column names
我正在尝试使用 Last.fm 数据制作推荐系统,以推荐用户喜欢听的用户歌曲。
我正在使用 NearestNeighbors 算法来预测用户喜欢听的特色歌曲。
我已经制作了模型,但我面临的问题是我在 Pandas DataFrame 中获取整数值而不是歌曲名称。
这是我得到的截图
我想要数据集中的歌曲名称,而不是值部分中的数字。
我如何实现这一点。
输出应该是这样的:
这是我的 Ipython 笔记本的 link:http://nbviewer.ipython.org/github/kartikjagdale/Last.fm-Song-Recommender/blob/master/Ipython%20Notebook/Last.Fm%20Song%20Recommeder.ipynb
和 link 到我的 github 项目:https://github.com/kartikjagdale/Last.fm-Song-Recommender/
DataFrame.columns
是一个Index
对象,可以作为数组使用。
你可以使用pd.DataFrame(df.columns[model])
来获取名字,这里是一个例子:
import pandas as pd
import numpy as np
from sklearn.neighbors import NearestNeighbors
df = pd.DataFrame(np.random.randint(0, 5, (10, 5)), columns=list("ABCDE"))
neigh = NearestNeighbors(n_neighbors=3)
neigh.fit(df.T) # Fit the data
model = neigh.kneighbors(df.T, return_distance=False)
pd.DataFrame(df.columns[model])
我正在尝试使用 Last.fm 数据制作推荐系统,以推荐用户喜欢听的用户歌曲。
我正在使用 NearestNeighbors 算法来预测用户喜欢听的特色歌曲。 我已经制作了模型,但我面临的问题是我在 Pandas DataFrame 中获取整数值而不是歌曲名称。 这是我得到的截图
我想要数据集中的歌曲名称,而不是值部分中的数字。 我如何实现这一点。 输出应该是这样的:
和 link 到我的 github 项目:https://github.com/kartikjagdale/Last.fm-Song-Recommender/
DataFrame.columns
是一个Index
对象,可以作为数组使用。
你可以使用pd.DataFrame(df.columns[model])
来获取名字,这里是一个例子:
import pandas as pd
import numpy as np
from sklearn.neighbors import NearestNeighbors
df = pd.DataFrame(np.random.randint(0, 5, (10, 5)), columns=list("ABCDE"))
neigh = NearestNeighbors(n_neighbors=3)
neigh.fit(df.T) # Fit the data
model = neigh.kneighbors(df.T, return_distance=False)
pd.DataFrame(df.columns[model])