Python
 Computer >> コンピューター >  >> プログラミング >> Python

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ループと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要素が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

  1. Pythonでプログラムを作成して、特定のシリーズのすべての要素を降順で並べ替えます

    入力 −シリーズがあると仮定します 0 abdef 1 ijkl 2 Abdef 3 oUijl 出力 −そして降順のすべての要素の結果 3 oUijl 1 ijkl 0 abdef 2 Abdef 解決策 これを解決するには、以下の手順に従います- シリーズを定義する 引数をascending=Falseとしてsort_valuesメソッドを適用します。以下に定義されています data.sort_values(ascending=False) 例 完全なコードリストは次のとおりです import pandas as pd l=["abdef",&qu

  2. 特定の系列の整数要素のみをフィルタリングするプログラムをPythonで作成します

    入力 −次のシリーズがあると仮定します− 0    1 1    2 2    python 3    pandas 4    3 5    4 6    5 出力 −整数要素のみの結果は− 0    1 1    2 4    3 5    4 6    5 ソリューション1 シリーズを定義します。 正規表現内にラムダフィルターメソッドを