データフレームとリストがあります。列の文字列がリスト内の何かで終わっているかどうかを確認したい。列がリスト内の何かで終わるかどうかを示す新しい列を作成したいのですが、値は「Y」、それ以外は「N」です。私のデータフレーム データは次のようになります。
import pandas as pd
city = ['New York', 'Los Angeles','Buffalo','Miami','San Deigo', 'San
Francisco']
population = ['8.5','3.9','0.25','0.45','1.4','0.87']
df = pd.DataFrame({'city':city,'population':population})
ending = ['les','sco', 'igo']
期待される結果は次のようになります。
city population flag
New York 8.5 N
Los Angeles 3.9 Y
Buffalo 0.25 N
Miami 0.45 N
San Deigo 1.4 Y
San Francisco 0.87 Y
if ステートメントを使用しようとしました:
if df['city'].str.endswith(tuple(ending)):
val = 'Y'
elif df['city'].str.endswith(tuple(ending)):
val= 'Y'
else:
val = 'N'
エラーメッセージが表示されます:
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
なにか提案を?感謝!