Pandas:Merge或Join返回错误的dataFrame

时间:2016-04-04 13:28:40

标签: python mysql pandas merge

我想要在Python中合并或加入两个数据帧:

"数据" :

       shortcontentid  hour_timings  not_relevant  other  postman_challenges  \
   0               1           NaN           1.0    NaN                 NaN   
   1               2           NaN           3.0    NaN                 NaN 

数据框" verbatims" :

                                             sentences  shortcontentid
0    Gabe_Newell a écrit : 40 maxi en luminosité ? ...               1
1    J'aime une vidéo @YouTube de @seb_frit - CE ME...               2

我想通过主键shortcontentid左键加入这些帧,这是两个帧共有的。如您所见,该操作只需将verbatims数据帧中的sentences列添加到data数据帧。 我做了一个经典的合并:

table = data.merge(verbatims, on='shortcontentid', how = "left") 

但代码无法正常工作或返回错误的数据帧。例如,如果我在table上进行打印,我的值为verbatims,而不是data的值。 这是一个例子:

     nonusable   2 or bigger sentences  
 0           1       qualite       NaN  

正如您所看到的,sentences充满了NaN,而我希望看到我的实际句子。

*NB : I imported my data from `pandas.csv` : 

data = pandas.read_csv("data crowdflower.csv", sep=";", header=0, engine='python')*

在这些表上进行干净合并/加入的最佳方法是什么?

谢谢!

2 个答案:

答案 0 :(得分:0)

以这种形式尝试:

table = pandas.merge(data, verbatims, how='inner', on='shortcontentid')
print (table)

答案 1 :(得分:0)

我已经部分理解了我的问题。 dtype中的shortcontentid verbatims是整数,而data中的对象是pandas.to_numeric(data) 。所以我必须将dtype从object转换为int。我试过了:

arg must be a list, tuple, 1-d array, or Series

但它返回以下错误:

{{1}}

所以我仍被封锁。