Python 3.x 如何根据第一个df中的条件在第二个数据帧中创建和填充新列?
我有一个熊猫数据框,如下所示Python 3.x 如何根据第一个df中的条件在第二个数据帧中创建和填充新列?,python-3.x,pandas,numpy,dataframe,Python 3.x,Pandas,Numpy,Dataframe,我有一个熊猫数据框,如下所示 df1 = {'City' :['London', 'Basel', 'Kairo'], 'Country': ['UK','Switzerland','Egypt']} City Country 0 London UK 1 Basel Switzerland 2 Kairo Egypt 现在,我想指定一个名为“大陆”的新列,该列应根据值填充 因此,df2应该看起来像: City Country Con
df1 = {'City' :['London', 'Basel', 'Kairo'], 'Country': ['UK','Switzerland','Egypt']}
City Country
0 London UK
1 Basel Switzerland
2 Kairo Egypt
现在,我想指定一个名为“大陆”的新列,该列应根据值填充
因此,df2应该看起来像:
City Country Continent
0 London UK Europe
1 Basel Switzerland Europe
2 Kairo Egypt Africa
因此,df1在df2中指示新列的值。如何以最简单的方式执行此操作?使用country->Continental字典,您可以将其传递给pd.DataFrame.replace()方法,如下所示:
df['Continent'] = df['Country'].replace(country_dict)
非常感谢。如果我有很多价值观,那么创建字典就没有那么有效了,是吗?如何确保第1列中的多个值在新的第2列中创建一个新值,而第1列中的其余值在第2列中弥补另一个值?例如,值:第1列中的a、b和c应导致第2列中的“标签”。第1列中的其余值(d、e、f、…z)应导致第2列中的“无标签”。我该怎么做呢?的确,replace可能有点慢,但无论如何你都应该测试一下,看看是否是这样。关于您的问题,您可以尝试map(),它似乎也更快。它不仅接受dict,而且还接受函数,因此您可以给它类似于
df['Continent']=df['Country'].map(lambda x:Country\u dict.get(x,'默认值'))的内容。