編寫 Python 程式碼,用於過濾給定資料框中的迴文姓名。
列印迴文姓名的結果如下:
Palindrome names are: Id Name 0 1 bob 2 3 hannah
為了解決這個問題,我們將遵循以下方法:
方案 1
定義資料框
在 set 迴圈內建立列表推導式,使用 i 變數訪問 df['Name'] 列中的所有值,並設定 if 條件以比較 i==i[::-1],然後將 i 值新增到列表中。
l = [ i for i in df['Name'] if(i==i[::-1])]
最後,使用 isin() 檢查列表值是否出現在 df['Name'] 列中。
df[df['Name'].isin(l)]
示例
讓我們檢查以下程式碼以更好地理解:
import pandas as pd
data = {'Id':[1,2,3,4,5],'Name':['bob','peter','hannah','james','david']}
df = pd.DataFrame(data)
print("DataFrame is:\n", df)
l = [ i for i in df['Name'] if(i==i[::-1])]
print("Palindrome names are:\n", df[df['Name'].isin(l)])輸出
DataFrame is: Id Name 0 1 bob 1 2 peter 2 3 hannah 3 4 james 4 5 david Palindrome names are: Id Name 0 1 bob 2 3 hannah
方案 2
定義資料框
應用 lambda 過濾器函式,將 df['Name'] 的每個值與 reversed 函式返回的結果進行比較,看是否相同。如果值匹配,則將其儲存為結果列表。
result = list(filter(lambda x:(x=="".join(reversed(x))),df['Name']
最後,使用 isin() 檢查列表值是否出現在 df['Name'] 列中。
df[df['Name'].isin(result)]
示例
讓我們檢查以下程式碼以更好地理解:
import pandas as pd
data = {'Id':[1,2,3,4,5],'Name':['bob','peter','hannah','james','david']}
df = pd.DataFrame(data)
print("DataFrame is:\n", df)
result = list(filter(lambda x:(x=="".join(reversed(x))),df['Name']))
print("Palindrome names are:\n", df[df['Name'].isin(result)])輸出
DataFrame is: Id Name 0 1 bob 1 2 peter 2 3 hannah 3 4 james 4 5 david Palindrome names are: Id Name 0 1 bob 2 3 hannah
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP