嗨,我有以下数据帧:
> df1
id begin conditional confidence discoveryTechnique
0 278 56 false 0.0 1
1 421 18 false 0.0 1
> df2
concept
0 A
1 B
如何合并索引以获取:
id begin conditional confidence discoveryTechnique concept
0 278 56 false 0.0 1 A
1 421 18 false 0.0 1 B
我这样问是因为我的理解是merge()
即df1.merge(df2)
使用列来进行匹配。事实上,这样做我得到:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/dist-packages/pandas/core/frame.py", line 4618, in merge
copy=copy, indicator=indicator)
File "/usr/local/lib/python2.7/dist-packages/pandas/tools/merge.py", line 58, in merge
copy=copy, indicator=indicator)
File "/usr/local/lib/python2.7/dist-packages/pandas/tools/merge.py", line 491, in __init__
self._validate_specification()
File "/usr/local/lib/python2.7/dist-packages/pandas/tools/merge.py", line 812, in _validate_specification
raise MergeError('No common columns to perform merge on')
pandas.tools.merge.MergeError: No common columns to perform merge on
按索引合并是不是不好?不可能吗?如果是,如何将索引移到名为“index”的新列中?
谢谢
使用^{} ,这是默认的内部连接:
或者^{} ,默认情况下是左连接:
或者^{} ,默认情况下是外部连接:
样本:
一个愚蠢的错误:连接失败,因为索引数据类型不同。这并不明显,因为两个表都是同一原始表的透视表。重置索引后,jupyter中的索引看起来相同。它只是在保存到excel时才曝光。。。
用
df1[['key']] = df1[['key']].apply(pd.to_numeric)
修复希望这能节省一个小时!
可以使用concat([df1, df2, ...], axis=1)将两个或多个按索引对齐的df连接起来:
或者merge用于通过自定义字段/索引连接:
或join通过索引连接:
相关问题 更多 >
编程相关推荐