擅长:python、mysql、java
<h2>设置</h2>
<pre><code>df1 = pd.DataFrame(dict(col1=[f"drug{i}" for i in range(1, 4)]))
df2 = pd.DataFrame(dict(col2=[f"disease{i}" for i in range(1, 4)]))
</code></pre>
<hr/>
<h2><code>merge</code>在指定列上</h2>
<pre><code>df1.assign(A=1).merge(df2.assign(A=1)).drop('A', 1)
col1 col2
0 drug1 disease1
1 drug1 disease2
2 drug1 disease3
3 drug2 disease1
4 drug2 disease2
5 drug2 disease3
6 drug3 disease1
7 drug3 disease2
8 drug3 disease3
</code></pre>
<hr/>
<h2>理解力</h2>
<pre><code>pd.DataFrame([
(i, j) for i in df1.col1
for j in df2.col2
], columns=['col1', 'col2'])
</code></pre>
<hr/>
<h2><code>pandas.concat</code></h2>
<p>任意两个数据帧的叉积的推广</p>
<pre><code>i = df1.index.repeat(len(df2))
j = np.tile(df2.index, len(df1))
pd.concat([
df1.loc[i].reset_index(drop=True),
df2.loc[j].reset_index(drop=True)
], sort=True, axis=1)
</code></pre>