擅长:python、mysql、java
<p>使用建议的映射字典是最好的方法</p>
<pre class="lang-py prettyprint-override"><code>import pandas as pd
mapping_dict = {'Best': 0, 'Mid': 1, 'Worst': 2, None: 3}
df = pd.DataFrame({
"node": ["A", "A"],
"touch1": ["Best", None],
"touch2": ["Mid", "Best"],
"touch3": ["Mid", "Worst"],
"touch4": [None, "Worst"],
"touch5": [None, None],
})
result = df.groupby('node').agg(lambda x: {value: key for key, value in mapping_dict.items()}[min(x.map(mapping_dict))])
print(result)
</code></pre>
<p>给出:</p>
<pre><code> touch1 touch2 touch3 touch4 touch5
node
A Best Best Mid Worst None
</code></pre>
<p>注意<code>{value: key for key, value in mapping_dict.items()}</code>只是映射dict的反转(key:value变成value:key),用于检索原始编码</p>