如果没有重叠,则使用MultiIndex的内部联接会失败

Joh*_*man 7 python pandas

我无法使用"空"内连接来使用MultiIndex.在0.10.1之下,我有:

d1 = pd.DataFrame({
    'i1': [1, 2, 2],
    'i2': [1, 1, 2],
     'a': [10,20,30]}).set_index(['i1', 'i2'])
d2 = pd.DataFrame({
    'i1': [3, 3],
    'i2': [1, 2],
    'b': [40, 50]}).set_index(['i1', 'i2'])
d1.join(d2, how='inner')
Run Code Online (Sandbox Code Playgroud)

这给了我

Exception: Cannot infer number of levels from empty list
Run Code Online (Sandbox Code Playgroud)

这有什么好办法吗?我希望能够预先判断交叉点是否为空,所以我可以避免异常.

unu*_*tbu 5

这是更容易请求原谅比许可:

import pandas as pd
d1 = pd.DataFrame({'i1': [1, 2, 2], 'i2': [1, 1, 2], 'a': [10, 20, 30]}
                  ).set_index(['i1', 'i2'])
d2 = pd.DataFrame(
    {'i1': [3, 3], 'i2': [1, 2], 'b': [40, 50]}).set_index(['i1', 'i2'])
try:
    d1.join(d2, how='inner')
except Exception as err:
    # Change this to however you wish to handle this case.
    print(err)
Run Code Online (Sandbox Code Playgroud)