【发布时间】:2018-08-31 17:31:21
【问题描述】:
示例:
df1 = pd.DataFrame({'a':list('ab'), 'b':[[1,2],[4,5]]})
print (df1)
a b
0 a [1, 2]
1 b [4, 5]
df2 = pd.DataFrame({'c':list('cd'), 'b':[[1,7],[4,5]]})
print (df2)
b c
0 [1, 7] c
1 [4, 5] d
我尝试按列合并 b 和 lists:
df = pd.merge(df1, df2, on='b')
TypeError: * 后面的类型对象参数必须是序列,而不是映射
我找到了将列转换为元组的解决方案:
df1['b'] = df1['b'].apply(tuple)
df2['b'] = df2['b'].apply(tuple)
df = pd.merge(df1, df2, on='b')
print (df)
a b c
0 b (4, 5) d
但是为什么 merge 和 lists 列失败了?
【问题讨论】:
标签: python list pandas merge multiple-columns