Python 自定义比较以在比较后创建新的数据帧

Python 自定义比较以在比较后创建新的数据帧,python,pandas,dataframe,Python,Pandas,Dataframe,我正在尝试基于与2个数据帧的比较创建一个新的熊猫数据帧 我在这里寻找了相似的答案,但我没有得到我想要的结果 我有两个数据帧: totalDistrict = dataFrameDemography[['district_name', 'population_density']] districtsWithRecyclingAreas = dataFrameRecyclingAreas['DISTRICT'] 我使用Pandas从2个不同的CSV文件中提取我想要的列。各表如下:

我正在尝试基于与2个数据帧的比较创建一个新的熊猫数据帧

我在这里寻找了相似的答案,但我没有得到我想要的结果

我有两个数据帧:

totalDistrict = dataFrameDemography[['district_name', 'population_density']]
districtsWithRecyclingAreas = dataFrameRecyclingAreas['DISTRICT']
我使用Pandas从2个不同的CSV文件中提取我想要的列。各表如下:

             district_name  population_density
0                    Centro           25340.69
1                Arganzuela           23306.44
2                    Retiro           21867.53
3                 Salamanca           26830.78
4                 Chamartín           15723.25
5                    Tetuan           28664.25
6                  Chamberí           29049.26
7       Fuencarral-El Pardo            1003.00
8           Moncloa-Aravaca            2515.26
9                    Latina            9183.75
10              Carabanchel           17316.88
11                    Usera           17535.32
12       Puente de Vallecas           15345.01
13                Moratalaz           15493.59
14            Ciudad Lineal           18455.56
15                Hortaleza            6973.33
16               Villaverde            7059.13
17        Villa de Vallecas            2026.82
18                Vicálvaro            1981.11
19      San Blas-Canillejas            6934.37
20                  Barajas            1076.06
现在,我想做的是生成一个包含所有地区及其人口密度的数据框,并用一个额外的列指示他们是否有回收区(1或0值f.e)


我只是不知道怎么做,因为每个数据帧中的列名称都不同,第二个区域也是用大写字母写的。

让我们使用
.str.upper
地区名称
列转换为大写,然后使用
系列.isin
查找
地区名称
中的元素,这些元素也存在于系列
地区回收区

totalDistrict['recycling'] = totalDistrict['district_name'].str.upper()\
                            .isin(districtsWithRecyclingAreas).view('i1')


@JavierAlonsoDelgado无需担心..您可以安全地忽略该警告..可能您使用的是旧的pandas版本。当我打印结果时,所有条目都有0个回收区。答案是否对您提供的样本数据有效?我使用的是主帖子中提供的数据,但是没有得到你在回答中提供的结果对我来说,它在样本数据上工作正常。顺便问一下,你的熊猫版本是什么?
totalDistrict['recycling'] = totalDistrict['district_name'].str.upper()\
                            .isin(districtsWithRecyclingAreas).view('i1')
          district_name  population_density  recycling
0                Centro            25340.69          0
1            Arganzuela            23306.44          1
2                Retiro            21867.53          0
3             Salamanca            26830.78          0
4             Chamartín            15723.25          0
5                Tetuan            28664.25          0
6              Chamberí            29049.26          0
7   Fuencarral-El Pardo             1003.00          1
8       Moncloa-Aravaca             2515.26          1
9                Latina             9183.75          1
10          Carabanchel            17316.88          1
11                Usera            17535.32          1
12   Puente de Vallecas            15345.01          1
13            Moratalaz            15493.59          1
14        Ciudad Lineal            18455.56          1
15            Hortaleza             6973.33          1
16           Villaverde             7059.13          1
17    Villa de Vallecas             2026.82          1
18            Vicálvaro             1981.11          0
19  San Blas-Canillejas             6934.37          1
20              Barajas             1076.06          1