用Python编写程序,通过删除给定数据框中的唯一前缀来过滤City列元素

假设您有一个数据框,则删除唯一前缀城市名称的结果是,

 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循环,如果有条件,则追加唯一的char。它的定义如下

l1 = []
for j in l:
   if(l.count(j)>1):
      if(j not in l1):
         l1.append(j)

  • 创建另一个空列表。设置for循环以访问城市列值,并检查l1中是否存在第一个char元素,然后将其附加到另一个列表。

l2 = []
for x in df['City']:
   if(x[0] in l1):
      l2.append(x)

  • 最后,验证l2元素是否存在于city列中,并使用来打印数据框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

猜你喜欢