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

pythonpandasserver side programmingprogramming

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

  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 循环以访问 city 列值并检查元素 first char 是否存在于 l1 中,然后将其附加到另一个列表中。

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

相关文章