【问题标题】:Python Pandas pd.merge_asof: TypeError: 'NoneType' object is not callablePython Pandas pd.merge_asof: TypeError: 'NoneType' object is not callable
【发布时间】:2018-02-06 23:49:10
【问题描述】:

我刚刚发现了 pandas merge_asof 函数并试图让它工作。
下面是一些重现我看到的错误的示例代码:

d1 = pd.DataFrame.from_dict({'id':[646327.0, 645714.0, 645462.0],
                             'units1':[1.7723982570833334, 1.7723982570833334, 5.772398257083333]})

d2 = pd.DataFrame.from_dict({'id':[645462.0, 645714.0, 646327.0, 645462.0, 645714.0,
645462.0,
645714.0,
645462.0,
645714.0,
645462.0], 'units2':[0.7723988920833333, 0.7723988920833333, 0.7723988920833333, 3.7723988920833333,
3.7723988920833333,
4.772398892083333,
4.772398892083333,
5.772398892083333,
5.772398892083333,
6.772398892083333]})

当我尝试使用pd.merge_asof:

d3 = pd.merge_asof(d1, d2, by = 'id', left_on = 'units1', right_on = 'units2',
                direction='nearest')

我收到一个错误 Nonetype error
有人知道这里发生了什么吗?我的语法不正确吗?

【问题讨论】:

  • 已编辑以更改 d1 和 d2(unit1 和 unit2)的列名,因此连接更有意义

标签: python pandas merge


【解决方案1】:

我可以通过将id 转换为int 来解决这个问题。

d1['id'] = d1['id'].astype('int')
d2['id'] = d2['id'].astype('int')
d3 = pd.merge_asof(d1, d2, by = 'id', on = 'units', direction='nearest')

【讨论】:

  • 谢谢!那行得通。奇怪的是它不适用于浮动,但是嘿,它现在可以工作了
  • @swang16 太棒了!
猜你喜欢
  • 2021-01-18
  • 2019-06-25
  • 2022-08-23
  • 1970-01-01
  • 2016-03-25
  • 2020-03-09
  • 1970-01-01
  • 2018-03-31
  • 2021-10-22
相关资源
最近更新 更多