How to do a data frame join with pandas?
dataframe, join, jupyter-notebook, pandas
Solution
I think I would use `merge` here:
>>> a = pd.DataFrame({"graph": ["as-22july06", "belgium", "cage15"], "running": [2, 879, 4292], "mod": [0.28, 0.94, 0.66], "eps": [220, 176, 1096]})
>>> b = pd.DataFrame({"graph": ["as-22july06", "astro-ph", "cage15"], "running": [395.186, 714.542, 999], "mod": [0.67, 0.74, 0.999]})
>>> a
eps graph mod running
0 220 as-22july06 0.28 2
1 176 belgium 0.94 879
2 1096 cage15 0.66 4292
>>> b
graph mod running
0 as-22july06 0.670 395.186
1 astro-ph 0.740 714.542
2 cage15 0.999 999.000
>>> a.merge(b, on="graph")
eps graph mod_x running_x mod_y running_y
0 220 as-22july06 0.28 2 0.670 395.186
1 1096 cage15 0.66 4292 0.999 999.000
Problem
Can somebody explain data frame joins with `pandas` to me based on this example? The first dataframe, let's call it `A`, looks like this: The second dataframe, `B`, looks like this: I want to create a plot now in which I compare the values for column `running` in `A` with those in `B` but only if the string in column `graph` is the same. (In this example, the first row in `A` and `B` have the same `graph` so I want to compare their `running` value.) I believe this is what `Pandas.DataFrame.join` is for, but I cannot formulate the code needed to join the data frames `A` and `B` correctly.