強引なアプローチ:
In [22]: df
Out[22]:
0 1 2
0 apple orange pear
1 peach apple pear
In [23]: def startswith(prefix, default=''):
...: def f(S):
...: for val in S:
...: if val.startswith(prefix):
...: return val
...: return default
...: return f
...:
In [24]: df.apply(startswith('pe'), axis=1)
Out[24]:
0 pear
1 peach
dtype: object
注、これは効率的であることを行っていません。本質的には、かさばった、ネストされた、Python forループです。たぶん、たくさんの文字列がある場合、DataFrameは正しいデータ構造ではありません。
注、(あなたが軸= 0、デフォルト値を渡した場合)df.apply
はすべてcolumに適用される機能をとるか、すべての行に(あなたが軸= 1を渡した場合)。
startswith
機能は機能の工場あるので、それはあなたが好きに設定することができます一致するものを(見つけたことがない場合、あなたはそれを検索したいプレフィックス、および返されるデフォルト値を渡すことができます)、そしては、これらの制約が与えられた行を検索する新しい関数を返します。
してくださいしてくださいしてください、組み込みの 'list'型のコンストラクタ*をシャドウイングしているので、' list = [...] 'を実行しないでください。これは、道路を辿ることが難しいバグに結びつく可能性があり、すべてが悪い考えです。 –
先端をありがとう –