我正在使用資料框和Pandas庫,我想選擇payload列中前兩個字符為“3c”的所有行,以及該列中最后兩個字符以“3e”結尾的行。
我知道應用條件將通過以下方式完成,
new_df = df.loc[df['column'] == 'condition']]
并且您可以搜索列是否包含字串的一部分,
new_df = df[df[df['column']].str.contains('X', case=False)]
我的問題是,如何指定我只想要前兩個字符?是否可以應用邏輯OR并在前兩個字符中搜索一個值,而在后兩個字符中搜索另一個值?
我已經嘗試過類似于以下的事情,但我沒有得到我想要的,
new_df= df[df['payload'][:2].str.contains('3c', case=False)]
非常感謝!
uj5u.com熱心網友回復:
按Series.str.startswith位鏈接兩個條件:Series.str.endswith|OR
new_df = df[df['payload'].str.startswith('3c') | df['payload'].str.endswith('3e')]
如果需要兩種情況:
new_df = df[df['payload'].str.startswith(('3c', '3C')) |
df['payload'].str.endswith(('3e', '3E'))]
您的解決方案可以通過選擇str第一個或最后 2 個值來修改:
df[df['payload'].str[:2].str.contains('3c', case=False) |
df['payload'].str[-2:].str.contains('3e', case=False)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/456078.html
上一篇:在熊貓中保留列而groupby(periodindex)df
下一篇:僅當字串不是NA值時才連接字串
