XXX / XX / XXXの形式の文字列を含む列を含むデータフレームがあります。'/'の間の文字列の長さが2に等しくないすべての行を削除したいと思います。
次のコードで「キーエラー:True」が発生します。
df_issues = df_new[len(df_new['Job'].str.split('/')[1]) != 2 ]
私のアプローチは、最初の「/」の後の文字列の長さが2に等しくないすべての行でシリーズを作成することでした。
助けてくれてありがとう。
ここで間違っていることがいくつかあります。
len(x) != 2
ブール値を返します。つまりdf_new[True]
、図形に互換性がないため、キーエラーを返すでインデックスを作成しようとしています(行に沿ってインデックス配列が必要ですdf_new[[True, False, True...]]
)。str
2番目のリストでさらにインデックスを作成するには、アクセサーが再度必要です。代わりに使用してください:
df_new[df_new['Job'].str.split(r'/').str[1].str.len().eq(2.)]
または、次を使用することもできますstr.contains
:
# corrected with @jon's remarks
df_new[df_new['Job'].str.contains(r'^.{3}/.{2}/.{3}$',na=False)]
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加