对于Python中的以下数据框:
Yref = pd.read_csv(rootDir + 'data/trailerClassificationData/C'+str(2)+'_withinShotAggr_'+withinShotAggr+'_btwshotAggr_'+btwShotAggr+'.csv',sep=',')
Y = pd.read_csv(rootDir + 'data/trailerClassificationData/C'+str(3)+'_withinShotAggr_'+withinShotAggr+'_btwshotAggr_'+btwShotAggr+'.csv',sep=',')
其中Y
和Yref
是某些目标分类输出:
Yref
movieId Action Comedy Drama Horror
0 93797 1 0 1 0
1 25899 0 1 0 0
2 5673 0 1 1 0
3 86308 0 1 0 0
4 3577 0 0 1 0
5 3575 0 0 1 0
...
7100 rows × 5 columns
并且类似于Y
Y
movieId Action Comedy Drama Horror
0 93797 1 0 1 0
1 1222 0 0 1 0
2 5673 0 1 1 0
3 86308 0 1 0 0
4 3577 0 0 1 0
5 3575 0 0 1 0
7136 rows × 5 columns
可以看出两个输出具有不同的行数。因此,第一个问题是如何将两个数据帧与on =' movieId'以及如何='内部' ?
Yjoin = Yref.join(Y,how='inner',on='movieId')
给了我这个错误。 columns overlap but no suffix specified
。我设法使用以下方法解决了第一个问题:
Yjoin = Yref.merge(Y,on='movieId',how='inner')
Yjoin = Yres.ix[:,0:5]
Yjoin.rename(columns={'Action_x':'Action','Comedy_x':'Comedy_x','Drama_x':'Drama','Horror_x':'Horror'}, inplace=True)
完成后,X
是一个类似于Y
的数据框,行数相似但没有关键字“movieId'”。
test1 test2 test3 test4 test5
0 0.038039 0.212623 4.052835e-02 5.210721e-02 0.004591
1 0.054539 0.257145 0.000000e+00 0.000000e+00 0.115421
2 0.002842 0.209085 1.114923e-02 3.844100e-02 0.024544
3 0.136707 0.377181 0.000000e+00 0.000000e+00 0.055199
....
7136 rows × 5 columns
我还需要从X 中删除Yjoin
中已删除的行,因此X的长度为7100 * 5。在一天结束时,Y和X将具有相同的行数7100。
感谢您的意见