【发布时间】:2017-08-04 12:32:36
【问题描述】:
我有 2 个 csv 我想根据索引执行外连接(索引是 2 列的组合)
frame1=pd.read_csv("Gamesa_G114 (Carlos Almeida)1.csv",index_col=['Dispositivo','Fecha'],sep=',',dtype='str')
frame2=pd.read_csv("Gamesa_G114 (Carlos Almeida).csv",index_col=['Dispositivo','Fecha'],sep=',',dtype='str')
现在我正在执行外部连接
frame=pd.merge(left=frame1,right=frame2,left_index=True,right_index=True,how='outer',suffixes=('_left', '_right'))
但它给出了一个错误
TypeError:不可排序的类型:str() > float()
对于错误的堆栈跟踪http://pastebin.com/eWYfnMRT
如果我在读取 csv 时已经指定了 dtype='str',为什么会说 TypeError: unorderable types: str() > float()
我已经多次执行合并,但从未遇到过这种类型错误的问题。
【问题讨论】:
-
frame1.info()和frame2.info()是什么? -
可能需要通过
astype-frame1 = frame1.astype(str)和frame2 = frame2.astype(str)转换为str -
@jezrael 它没有帮助
-
我添加了框架信息
-
有趣,看起来不错。
print (frame1.index.get_level_values(1).dtype)和print (frame2.index.get_level_values(1).dtype)呢?