擅长:python、mysql、java
<p>首先,让我们添加我们需要的信息:</p>
<pre><code>a['value * %1'] = a['value'] * a['%1']
a['value * %2'] = a['value'] * a['%2']
a['value * %3'] = a['value'] * a['%3']
</code></pre>
<p>其结果是:</p>
<pre><code> value name1 %1 name2 %2 name3 %3 value * %1 value * %2 value * %3
0 100 person1 0.3 person2 0.5 person3 0.2 30.0 50.0 20.0
1 100 person4 1.0 None NaN None NaN 100.0 NaN NaN
2 100 person1 0.6 person5 0.4 None NaN 60.0 40.0 NaN
</code></pre>
<p>现在,我们只需要创建一个新的数据帧并在其中输入值:</p>
<pre><code>df = pd.DataFrame()
df['value'] = a['value * %1'].tolist() + a['value * %2'].tolist() + a['value * %3'].tolist()
df['name'] = a['name1'].tolist() + a['name2'].tolist() + a['name3'].tolist()
</code></pre>
<p>并在最后删除Nan值:</p>
<pre><code>df.dropna()
</code></pre>
<p>也许有更好的办法。但这就是我想到的</p>