我有以下数据帧
books = pd.Series(data = ['Great Expectations', 'Of Mice and Men', 'Romeo and Juliet', 'The Time Machine', 'Alice in Wonderland' ])
authors = pd.Series(data = ['Charles Dickens', 'John Steinbeck', 'William Shakespeare', ' H. G. Wells', 'Lewis Carroll' ])
user_1 = pd.Series(data = [3.2, np.nan ,2.5])
user_2 = pd.Series(data = [5., 1.3, 4.0, 3.8])
user_3 = pd.Series(data = [2.0, 2.3, np.nan, 4])
user_4 = pd.Series(data = [4, 3.5, 4, 5, 4.2])
dict_temp = {'Book Title':books, 'Author': authors, 'User 1': user_1, 'User 2':user_2, 'User 3': user_3, 'User 4': user_4}
pd.set_option('precision', 1)
temp_df = pd.DataFrame(dict_temp)
我的目标是选择所有用户评分为5.0的列。当我做以下工作时,它工作得很好。你知道吗
temp_df[temp_df == 5.0]
但是,如果要选择用户评级为>;4.0的列,结果会有所不同。为什么会这样?你知道吗
temp_df[temp_df > 4.0]
下面是运行temp_df==5.0v/s temp_df>;4.0时的屏幕截图。我的问题是为什么我会看到书名和作者栏?你知道吗
另外,我能通过这条线达到我想要的结果
temp_df[temp_df[['User 1','User 2','User 3','User 4']] > 4.0]
我可以用你的代码运行以下代码。你知道吗
我显式地将
4.0
设置为float
,这可能会对您有所帮助,尽管对我来说这不是问题。你知道吗输出
相关问题 更多 >
编程相关推荐