मेरे पास ऐसे डेटाफ़्रेम हैं:
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।
आदर्श रूप में, जितनी जल्दी हो सके एक पंक्ति में।
वर्तमान में, मैं कोशिश करता हूं, लेकिन यह वैल्यूएयर लौटाता है।
df[['col1', 'col2', 'col3']] = df.loc[df['col1'].str.split(":").apply(len) > 2], ("", "", False), df[['col1', 'col2', 'col3']])
EDIT: col1 पर शर्त। EDIT2: सभी महान और जल्दी से प्रदान किए गए उत्तर के लिए धन्यवाद। गजब का! EDIT3: 10 ^ 6 पंक्तियों पर समय:
@ansev 3.2657s
@ जेज़रेल 0.8922s
@ aky_91 1.9511s
col2
याcol1
?