Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 如何根据第一个df中的条件在第二个数据帧中创建和填充新列?_Python 3.x_Pandas_Numpy_Dataframe - Fatal编程技术网

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,'默认值'))的内容。