擅长:python、mysql、java
<p>你可以试试这样的。我建议您将替换dict密钥更改为int</p>
<pre><code>import pandas as pd
import numpy as np
replacement_dict = {
'69': {'REGULAR': 5, 'VIP': 10},
'70': {'REGULAR': 10},
'71': {'REGULAR': 1, 'VIP': 2}
}
data = [
{"Id":69,"Earned":1000,"Redeemed":0,"Type":"REGULAR"},
{"Id":70,"Earned":1000,"Redeemed":0,"Type":"REGULAR"},
{"Id":71,"Earned":1000,"Redeemed":0,"Type":"VIP"}
]
df = pd.DataFrame.from_dict(data)
df["Earned_Normal"] = np.nan
print(df)
def transform_row(r):
# we add a default
default = {'REGULAR': 5, 'VIP': 10}
replacement_for_this_row = replacement_dict.get(str(r.Id),default)
r.Earned_Normal = r.Earned / replacement_for_this_row[r.Type]
return r
print(df.apply(transform_row, axis=1))
</code></pre>
<p>我希望有帮助</p>