将单个列数据帧合并到另一个数据帧而不使用任何公共密钥

时间:2018-04-26 14:25:46

标签: python pandas dataframe merge

我的数据框如下:

                            User_Id     MARKED_CONTENT_AS_FAVOURITE RATE_CONTENT SEARCH VIEWED_CELEBRITY VIEWED_MOVIE VIEWED_TVSHOW
1 6916484f-b7bd-431a-818d-d1a63ff7c717                           0            0      1                0            4             0
2 9fbb7702-5209-46c8-b7c8-2c3d03550b56                           2            2      1                1           20             3
3 cb1fc554-8566-4c9f-a3ca-f64be302d65e                           0            0      1                1            0             0

现在我有一个只有一个值的系列。我想执行一种矢量化操作,其中我只有一个值的系列。

  USER_CHECKED_IN_CONTENT
3                       0

我想将此列附加到数据框,如下所示。

                               User_Id MARKED_CONTENT_AS_FAVOURITE RATE_CONTENT SEARCH VIEWED_CELEBRITY VIEWED_MOVIE VIEWED_TVSHOW USER_CHECKED_IN_CONTENT
1 6916484f-b7bd-431a-818d-d1a63ff7c717                           0            0      1                0            4             0                       0
2 9fbb7702-5209-46c8-b7c8-2c3d03550b56                           2            2      1                1           20             3                       0
3 cb1fc554-8566-4c9f-a3ca-f64be302d65e                           0            0      1                1            0             0                       0

但是当我使用

pivot_activity.append(subset[[x for x in list(subset) if x not in list(pivot_activity)]]) 

它输出如下:

   MARKED_CONTENT_AS_FAVOURITE  RATE_CONTENT  SEARCH  USER_CHECKED_IN_CONTENT                                User_Id  VIEWED_CELEBRITY  VIEWED_MOVIE 
0                          0.0           0.0     1.0                      NaN   6916484f-b7bd-431a-818d-d1a63ff7c717               0.0           4.0  
1                          2.0           2.0     1.0                      NaN   9fbb7702-5209-46c8-b7c8-2c3d03550b56               1.0          20.0  
2                          0.0           0.0     1.0                      NaN   cb1fc554-8566-4c9f-a3ca-f64be302d65e               1.0           0.0  
2                          NaN           NaN     NaN                      0.0                                    NaN               NaN           NaN  

3 个答案:

答案 0 :(得分:1)

您可以轻松地将新列添加到现有数据框"df",如下所示:

df['USER_CHECKED_IN_CONTENT'] = 0 # df is your existing dataframe

答案 1 :(得分:0)

我认为你可以在这里使用concat。假设你有:

df - bigger data frame
df1 - smaller data frame

你可以这样做:

pd.concat([df, df1], axis=0).fillna(0)

答案 2 :(得分:0)

我认为这就是你想要的。合并似乎不是您想要的,因为它必须有一些匹配的引用,并且您有一个具有不同键的1到多个场景。此代码将从子集数据框的单行单列分配整个列:

pivot_activity['USER_CHECKED_IN_CONTENT'] = subset[ 'USER_CHECKED_IN_CONTENT'].head(1)