Python 3.x Python DataFrame-根据条件从一个数据帧列更新另一个数据帧列

Python 3.x Python DataFrame-根据条件从一个数据帧列更新另一个数据帧列,python-3.x,pandas,dataframe,Python 3.x,Pandas,Dataframe,我正在参加一个数据科学竞赛,其中一个问题是,我必须根据另一个数据帧的某些条件更新原始数据帧中的值。 我厌倦了一些代码,但运气不好。 下面是细节 谢谢你的建议 Ask is:如果CNT在新的_df中超过200,则将列“FIELD_1”更新为2;1当CNT大于100且时,尝试此操作 import pandas as pd import numpy as np df = pd.DataFrame({'FIELD_1': ['f710fca39', '1fd0233cd', '005dd4ce3', '

我正在参加一个数据科学竞赛,其中一个问题是,我必须根据另一个数据帧的某些条件更新原始数据帧中的值。 我厌倦了一些代码,但运气不好。 下面是细节

谢谢你的建议

Ask is:如果CNT在新的_df中超过200,则将列“FIELD_1”更新为2;1当CNT大于100且时,尝试此操作

import pandas as pd
import numpy as np
df = pd.DataFrame({'FIELD_1': ['f710fca39', '1fd0233cd', '005dd4ce3', '5331f98fb', '005dd4ce3', 'f710fca39', 'eb0004a0b'], 
                         'B': [400        , 500        , 600        , 700        , 800        , 900        , 111]})
new_df = pd.DataFrame({'CNT': [225, 150, 80, 230],
                       'ID': ['f710fca39', '1fd0233cd', '5331f98fb', '005dd4ce3']})

df_ = df.copy()
df_=df_.rename(columns={"FIELD_1":"ID"})
mer = pd.merge(df_,new_df,how="left",on=["ID"])
def f(x):
    if pd.isnull(x):
        return np.nan
    elif x>200:
        return 1
    elif x<100:
        return 0
    else:
        return 2
mer["FIELD_1"]= mer.CNT.apply(lambda x: f(x))
mer=mer.drop(columns=["ID","CNT"])
将熊猫作为pd导入
将numpy作为np导入
df=pd.DataFrame({'FIELD_1':['f710fca39','1fd0233cd','005dd4ce3','5331f98fb','005dd4ce3','f710fca39','eb0004a0b'],
‘B’:[400500600700800900111])
new_df=pd.DataFrame({'CNT':[225,150,80,230],
'ID':['f710fca39','1fd0233cd','5331f98fb','005dd4ce3']})
df_u=df.copy()
df_u=df_u.rename(列={“字段_1”:“ID”})
mer=pd.merge(df_u,new_u-df,how=“left”,on=[“ID”])
def f(x):
如果pd.isnull(x):
返回np.nan
elif x>200:
返回1
埃利夫x
import pandas as pd
import numpy as np
df = pd.DataFrame({'FIELD_1': ['f710fca39', '1fd0233cd', '005dd4ce3', '5331f98fb', '005dd4ce3', 'f710fca39', 'eb0004a0b'], 
                         'B': [400        , 500        , 600        , 700        , 800        , 900        , 111]})
new_df = pd.DataFrame({'CNT': [225, 150, 80, 230],
                       'ID': ['f710fca39', '1fd0233cd', '5331f98fb', '005dd4ce3']})

df_ = df.copy()
df_=df_.rename(columns={"FIELD_1":"ID"})
mer = pd.merge(df_,new_df,how="left",on=["ID"])
def f(x):
    if pd.isnull(x):
        return np.nan
    elif x>200:
        return 1
    elif x<100:
        return 0
    else:
        return 2
mer["FIELD_1"]= mer.CNT.apply(lambda x: f(x))
mer=mer.drop(columns=["ID","CNT"])