擅长:python、mysql、java
<p>以下是将dataframe转换为一组元组的方法:</p>
<pre><code>a1 = set(df1.apply(tuple,1).values)
a2 = set(df2.apply(tuple,1).values)
print(a1)
{('FI', 'NB444135', 'NB234471', 'Y'),
('FR', 'FR418458', 'FR765617', 'Y'),
('FR', 'FR494010', 'FR332891', 'Y'),
('FR', 'FR629810', 'FR855277', 'Y'),
('FR', 'FR740500', 'FR907878', 'Y'),
('GB', 'GB390065', 'GB66903', 'Y')}
print(a2)
{('FI', 'NB444135', 'NB234471', 'Y'),
('FR', 'FR418458', 'FR7656', 'Y'),
('FR', 'FR4910', 'FR33891', 'Y'),
('FR', 'FR629810', 'FR855277', 'Y'),
('FR', 'FR740500', 'FR907878', 'Y'),
('GB', 'GB390065', 'GB66903', 'Y')}
# now do set difference (in df2 not in df1)
diffs = pd.DataFrame(np.array([x for x in a2 - a1]))
diffs['Available'] = 'df2'
print(diffs)
0 1 2 3 Available
0 FR FR418458 FR7656 Y df2
1 FR FR4910 FR33891 Y df2
</code></pre>