Zusammenführen von zwei dataframes, die durch den index
Hallo ich habe folgende dataframes:
> 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
Wie führe ich auf die Indizes zu bekommen:
id begin conditional confidence discoveryTechnique concept
0 278 56 false 0.0 1 A
1 421 18 false 0.0 1 B
Ich Frage, weil es ist mein Verständnis, dass merge()
d.h. df1.merge(df2)
Spalten zu tun die passenden. In der Tat, dies zu tun, den ich bekommen:
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
Ist es schlechte Praxis zu verschmelzen auf den index? Ist es unmöglich? Wenn ja, wie kann ich eine Verschiebung der index in eine neue Spalte namens "index"?
Dank
- versuchen Sie dies:
df1.join(df2)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden
merge
, die inner-join-standardmäßig:Oder
join
, die left-join-standardmäßig:Oder
concat
, die outer-join-standardmäßig:Proben:
.transpose()
einer Ihrer dfs, um die Synchronisierung der Indizes - das war mein Problemconcat
zu setzen df in Klammern, währendjoin
undmerge
nicht?dfs = [df1, df2, df3,... dfn]
und danndf = pd. concat(dfs)
können Sie concat([df1, df2, ...], axis=1), um zu verketten von zwei oder mehr DFs-ausgerichtet von Indizes:
oder merge für die Verkettung von benutzerdefinierten Feldern /Register:
oder beitreten für den Beitritt von index:
Einen dummen Fehler, die mir kam: der Verknüpfungen ist fehlgeschlagen, da index dtypes unterschieden. Dies war nicht offensichtlich, wie die beiden Tabellen pivot-Tabellen, die von den gleichen ursprünglichen Tabelle. Nach reset_index, die Indizes sah identisch jupyter. Es kam nur Licht beim speichern in excel...
Feste mit:
df1[['key']] = df1[['key']].apply(pd.to_numeric)
Hoffentlich spart sich jemand eine Stunde!!!
Wenn u wollen, an zwei dataframes in pandas einfach können Sie die verfügbaren Attribute wie
merge
oderconcatenate
.Zum Beispiel, wenn ich zwei dataframes
df1
unddf2
ich können sich Ihnen anzuschließen: