<p>创建一个函数来计算附加费,然后使用<code>.apply</code>将其应用于“NetPerPiece”行。你知道吗</p>
<pre><code>import pandas as pd
df = pd.read_csv('something.csv')
def get_surcharges(x):
to = [0, 20, 200, 500, 1500, 5000]
fr = [20, 200, 500, 1500, 5000,1000000000]
surcharges = [0.35, 0.25, 0.2, 0.15, 0.12, 0.1]
rr = list(zip(to, fr, surcharges))
price = [r[2] for r in rr if x > r[0] and x <r[1]]
return price[0]
df['NetPerpieceSale'] = df['NetPerPiece'].apply(lambda x: get_surcharges(x))
print(df)
</code></pre>
<p>这将输出:</p>
<pre><code> OrderNo NetPerPiece costsDividedPerOrder HandlingPerPiece NetPerpieceSale
0 7027514279 44.24 0.008007 0.354232 0.25
1 7027514279 15.93 0.008007 0.127552 0.35
2 7027514279 15.93 0.008007 0.127552 0.35
3 7027514279 15.93 0.008007 0.127552 0.35
4 7027514279 15.93 0.008007 0.127552 0.35
</code></pre>
<p>不带for循环的选项(有点冗长):</p>
<pre><code>def get_surcharges(x):
if x > 0:
if x > 20:
if x > 200:
if x > 500:
if x > 1500:
if x > 5000:
return 0.1
else:
return 0.12
else:
return 0.15
else:
return 0.2
else:
return 0.25
else:
return 0.35
</code></pre>