編寫一個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 次瀏覽

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.