2017-04-18 75 views
0

我有一個dataframes,看起來像這樣:在大熊貓合併錯誤

top_ten_movies:

movieId count mean 
1  247  3.872470 
2  107  3.401869 
6  104  3.884615 
10  122  3.450820 
25  101  3.742574 
32  196  3.923469 
34  148  3.601351 
36  104  3.937500 
39  120  3.550000 
47  201  4.034826 

電影:

movieId title         genres 
1  Toy Story (1995)      Adventure 
2  Jumanji (1995)       Children|Fantasy 
3  Grumpier Old Men (1995)    Comedy|Romance 
4  Waiting to Exhale (1995)    Comedy|Drama|Romance 
5  Father of the Bride Part II (1995)  Comedy 
6  Heat (1995)       Action|Crime|Thriller 
7  Sabrina (1995)       Comedy|Romance 
8  Tom and Huck (1995)     Adventure|Children 
9  Sudden Death (1995)     Action 

我需要根據movieId合併,所以:

required_data=pd.merge(top_ten_movies, movies) 
required_data=pd.merge(top_ten_movies, movies, on='movieId', how='outer') 

這兩個聲明s正在拋出錯誤。有人可以幫助...嗎?

+4

瞭解錯誤你會不會覺得有用?你確定'movieId' dtypes對於這兩個dfs是相同的嗎?即。是一個數字,另一個是字符串? – EdChum

回答

0

我要承擔這些都是你的錯誤你分別嘗試的方法:

MergeError: No common columns to perform merge on

KeyError: 'movieId'

從你貼我假設你的指數是movieId的DataFrames,這是什麼導致你的錯誤。如果您重置您的指數並重試,您應該可以合併。因此,基於這些假設下面應該工作:

out = pd.merge(top_ten_movies.reset_index(), movies.reset_index()) 
print(out) 
    movieId count  mean     genres  title 
0  1 247 3.872470    Adventure Toy Story 
1  2 107 3.401869  Children|Fantasy Jumanji 
2  6 104 3.884615 Action|Crime|Thriller  Heat 

現在,如果你的索引是movieId作爲假設,您可以使用pandas.DataFrame.join方法來完成你的任務。例如:

print(top_ten_movies.join(movies)) 
     count  mean     genres  title 
movieId 
1   247 3.872470    Adventure Toy Story 
2   107 3.401869  Children|Fantasy Jumanji 
6   104 3.884615 Action|Crime|Thriller  Heat 
10   122 3.450820     NaN  NaN 
25   101 3.742574     NaN  NaN 
32   196 3.923469     NaN  NaN 
34   148 3.601351     NaN  NaN 
36   104 3.937500     NaN  NaN 
39   120 3.550000     NaN  NaN 
47   201 4.034826     NaN  NaN 
print(top_ten_movies.join(movies, how='inner')) 
     count  mean     genres  title 
movieId 
1   247 3.872470    Adventure Toy Story 
2   107 3.401869  Children|Fantasy Jumanji 
6   104 3.884615 Action|Crime|Thriller  Heat 

所有這是說,你可以爲自己做的最好的事情是大熊貓文檔中讀取Merge, Join, and Concatenate