Pandas - เติม nans จนไม่ใช่ค่า NULL แรก


9

ฉันมีชื่อไฟล์เช่น

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

ฉันจะเติม NULL ได้อย่างไร (ด้วย 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

นี้จะทำได้โดยใช้หรือwheremask

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

มีหลายวิธีในการสกินแมวที่นี่ :-)


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.