用 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