<p>在“我的文件”中,有一列包含不同的等级(columns name='grades)。你知道吗</p>
<p>例如:9150K、9260K、柴油机、ADBlU等。。你知道吗</p>
<p>对于所有这些等级,我需要把它们分为几个等级</p>
<p>例如<code>: 91 50K= Petrol</code></p>
<p>在我的python中,我如何做到这一点?注意,我可以将整个列传递给函数。但是函数必须用正确的值重写每一行的值</p>
<pre><code>def checkgrades(data):
df['Grades']=???
???
</code></pre>
<p>按照下面的答案我试着</p>
<pre><code> df_dips=map_dips_grades(df_dips)
df_sales = df_sales.merge(df_dips, left_on=['Site Name', 'Date','GradeNo'],
right_on=['Site', 'Dip Time', 'Product'], how='left').fillna(0)
def map_dips_grades(data):
d1 = {'Diesel': ['DIESEL', 'DIESEL 1'],
'Unleaded': ['91','91 UNLEADED'],
'PULP':['95','95 ULP'],
'PULP98':['98','98 20K'],
'Vortex Diesel':['DIESEL ULT R'],
'Adblue':['ADBLU','ADO']}
d = {k: oldk for oldk, oldv in d1.items() for k in oldv}
data['Product'].map(d)
return data
</code></pre>
<p>但我得到了</p>
<pre><code>ValueError: You are trying to merge on int64 and object columns. If you wish to proceed you should use pd.concat
</code></pre>