编写一个Python程序,用于过滤给定数据框中“城市”列的元素,去除唯一的城市名前缀。


假设你有一个数据框,去除唯一的城市名前缀后的结果是:

  Id  City
2 3 Kolkata
3 4 Hyderabad
6 7 Haryana
8 9 Kakinada
9 10 Kochin

为了解决这个问题,我们将遵循以下步骤:

解决方案

  • 定义一个数据框

  • 创建一个空列表,首先将所有城市列的值的第一个字符添加到其中。

l = []
for x in df['City']:
   l.append(x[0])
  • 创建另一个空列表来过滤重复的字符。

设置for循环和if条件来添加唯一的字符。定义如下:

l1 = []
for j in l:
   if(l.count(j)>1):
      if(j not in l1):
         l1.append(j)
  • 创建一个另一个空列表。设置for循环来访问城市列的值,并检查元素的第一个字符是否在l1中,然后将其添加到另一个列表中。

l2 = []
for x in df['City']:
   if(x[0] in l1):
      l2.append(x)
  • 最后,验证l2中的元素是否存在于城市列中,并使用isin()打印数据框。

df[df['City'].isin(l2)]

示例

让我们检查以下代码以更好地理解:

import pandas as pd
df = pd.DataFrame({'Id':[1,2,3,4,5,6,7,8,9,10],
                     'City':['Chennai','Delhi','Kolkata','Hyderabad','Pune','Mumbai','Haryana','B engaluru','Kakinada','Kochin']
                  })
l = []
for x in df['City']:
   l.append(x[0])
l1 = []
for j in l:
   if(l.count(j)>1):
      if(j not in l1):
         l1.append(j)
l2 = []
for x in df['City']:
   if(x[0] in l1):
      l2.append(x)
print(df[df['City'].isin(l2)])

输出

 Id   City
2 3 Kolkata
3 4 Hyderabad
6 7 Haryana
8 9 Kakinada
9 10 Kochin

更新于:2021年2月25日

278 次浏览

启动你的职业生涯

完成课程获得认证

开始学习
广告