【问题标题】:Pandas : Merge or Join returns wrong dataFrame熊猫:合并或加入返回错误的数据帧
【发布时间】:2016-07-24 01:53:21
【问题描述】:

我有两个要在 Python 中合并或加入的数据框:

“数据”:

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

还有一个数据框“逐字记录”:

                                             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 左连接这些框架。如您所见,该操作只需将逐字数据帧中的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')*

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

谢谢!

【问题讨论】:

  • 通过发布原始示例数据、创建 dfs 的代码以及错误合并的样子来解释什么不起作用
  • 好的,我编辑了我的帖子。但是我可以发布示例数据。

标签: python mysql pandas merge


【解决方案1】:

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

pandas.to_numeric(data)

但它返回以下错误:

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

所以我还是被屏蔽了。

【讨论】:

    【解决方案2】:

    试试这个形式:

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

    【讨论】:

    • 内部合并不起作用,因为它只返回一个带有我的列名的空数据框:Empty DataFrame Columns: [shortcontentid, hour_timings, not_relevant, other, postman_challenges, postman_relationship, quality_postman_work, Total g�n�ral, result, nonusable, 2 or bigger, _unit_id, _created_at, _updated_at, brand, sentences] Index: []
    猜你喜欢
    • 2019-01-13
    • 1970-01-01
    • 2014-12-04
    • 2018-01-10
    • 2019-07-20
    • 2018-03-27
    • 1970-01-01
    • 1970-01-01
    • 2018-10-11
    相关资源
    最近更新 更多