मेरे पास निम्न की तरह डेटाफ्रेम है:

      A        B    C

0     5 4)     0    3 2)
1     1        9    1
2     0,10 3)  9    0,22 3)
3     0.5      10   0.2
4     0,07 2)  2    0,05 3)

अब मैं उन मानों को बदलना चाहता हूं, जिनमें एक ब्रैकेट ")" है ताकि केवल पहली संख्या बनी रहे। ऐशे ही:

      A        B    C

0     5        0    3 
1     1        9    1
2     0,10     9    0,22 
3     0.5      10   0.2
4     0,07     2    0,05 

मैंने इसे निम्नलिखित कोड के साथ करने की कोशिश की, जो सफल रहा।

for i in df["A"]:
    if ")" in str(i):
        new, filler = str(i).split(" ",1)
        df.replace(i, new,inplace=True)

बड़ी मात्रा में डेटा के कारण, मुझे यह ऑपरेशन पूरे डेटाफ़्रेम पर करने की ज़रूरत है, न कि केवल कॉलम "ए" पर। इसका सबसे अच्छा तरीका क्या है? धन्यवाद!

1
Tomas 10 जिंदा 2020, 19:55

1 उत्तर

सबसे बढ़िया उत्तर

एक दृष्टिकोण रिक्त स्थान पर विभाजित करना और परिणामी सूचियों का पहला तत्व रखना है:

cols = ['A', 'C']
df[cols] = df[cols].apply(lambda x: x.str.split(' ').str[0])

print(df)
A   B     C
0     5   0     3
1     1   9     1
2  0,10   9  0,22
3   0.5  10   0.2
4  0,07   2  0,05
3
yatu 10 जिंदा 2020, 17:27