擅长:python、mysql、java
<p>尝试:</p>
<pre class="lang-py prettyprint-override"><code>df['preDiabetes']=df['preDiabetes'].map({'Yes': 1, 'No': 0}).fillna(-1)
df=df.groupby(['MotherID', 'ChildID'])['preDiabetes'].max().map({1: 'Yes', 0: 'No', -1: 'NaN'}).reset_index()
</code></pre>
<p><em>第一行</em>将<code>preDiabetes</code>格式化为数字,假设<code>NaN</code>是除<code>Yes</code>或<code>No</code>(由<code>-1</code>表示)之外的所有内容</p>
<p><em>第二行</em>假设至少有一个<code>preDiabetes</code>是<code>Yes</code>-我们为组输出<code>Yes</code>。假设我们有<code>No</code>和<code>NaN</code>,我们输出<code>No</code>。假设所有的都是<code>NaN</code>,我们输出<code>NaN</code></p>
<p>产出:</p>
<pre class="lang-py prettyprint-override"><code>>>> df
MotherID ChildID preDiabetes
0 102 13 Yes
1 455 20 No
2 530 60 NaN
3 571 82 Yes
4 946 702 No
</code></pre>