पंडों- पहले गैर पूर्ण मूल्य तक नेन्स भरें


9

मेरे पास एक डेटाफ्रेम है

A    B    C
1    nan  nan
2    nan  5
3    3    nan
4    nan  nan

मैं प्रत्येक श्रृंखला के लिए केवल NULLs (0 के साथ) कैसे भरता हूं, जब तक कि पहला गैर NULL मान न हो जाए

A    B    C
1    0    0
2    0    5
3    3    nan
4    nan  nan

जवाबों:


6

एक चाल के pandas.DataFrame.ffillसाथ notnaऔर का उपयोग कर के बिट where:

df.where(df.ffill().notna(), 0)

या उपयोग कर रहा है pandas.DataFrame.interpolate:

df.interpolate('zero', fill_value=0, limit_direction='backward')

आउटपुट:

   A    B    C
0  1  0.0  0.0
1  2  0.0  5.0
2  3  3.0  NaN
3  4  NaN  NaN

6

यह प्रयोग करके किया जाएगा whereया mask

df.mask(df.notna().cumsum().eq(0), 0)
# or,
df.where(df.notna().cumsum().ne(0), 0)

   A    B    C
0  1  0.0  0.0
1  2  0.0  5.0
2  3  3.0  NaN
3  4  NaN  NaN

यहाँ एक बिल्ली त्वचा के लिए कई तरीके :-)


0

चूंकि 0 + नेन यह काम करता है:

xf = df.fillna(0) + df.bfill()*0
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.