Böyle bir DataFrame var:
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']})
Ben col1 ":" bölündükten sonra listenin uzunluğunu almak istiyorum, sonra uzunluk> 2 VEYA uzunluk <= 2 ise değerlerin üzerine değil değerleri üzerine yazmak istiyorum.
İdeal olarak, mümkün olduğunca hızlı bir şekilde.
Şu anda deniyorum ama ValueError döndürüyor.
df[['col1', 'col2', 'col3']] = df.loc[df['col1'].str.split(":").apply(len) > 2], ("", "", False), df[['col1', 'col2', 'col3']])
EDIT: col1'deki durum. EDIT2: tüm harika ve hızlı bir şekilde sağlanan cevaplar için teşekkür ederim. inanılmaz! EDIT3: 10 ^ 6 satırda zamanlama:
@ansev 3.2657s
@ErkekTerimleri
@ anky_91 1.9511s
col2
yoksacol1
?