私はそのようなDataFrameを持っています:
df = pd.DataFrame(data={
'col0': [11, 22,1, 5]
'col1': ['aa:a:aaa', 'a:a', 'a', 'a:aa:a:aaa'],
'col2': ["foo", "foo", "foobar", "bar"],
'col3': [True, False, True, False],
'col4': ['elo', 'foo', 'bar', 'dupa']})
col1の ":"で分割した後、リストの長さを取得したい場合、長さ> 2の場合は値を上書きするか、長さ<= 2の場合は値を上書きしないようにします。
理想的には、1行でできるだけ速く。
現在、私は試みますが、それはValueErrorを返します。
df[['col1', 'col2', 'col3']] = df.loc[df['col1'].str.split(":").apply(len) > 2], ("", "", False), df[['col1', 'col2', 'col3']])
編集:col1の条件。EDIT2:すべての素晴らしくて迅速な回答に感謝します。すごい!EDIT3:10 ^ 6行のタイミング:
@ansev 3.2657s
@jezrael 0.8922s
@ anky_91 1.9511s
私は間違いをお詫びします。col1です。
—
dkrynicki
col2
かcol1
?