I want to plot the number of positions in a sliding window of **1000** and a step of **20** for each sample **(A-D)**.

Interpretation:
* `1`: position exists;
* `NA`: position does not exist.

I have tested a dozen tools in `bash`, `R` and other but I am looking for a `Python` solution.  
Your advice please.

    #This is an example of my data:
    window = 1000
    step = 20

    # Example of dataframe
    POSITION		A		B 		C 		D
    1250			1		1		1		1 
    1750			NA		1		NA		1
    1786			1		NA		1		1
    1812			1		1		1		1
    1855			1		1		1		1
    1896			1		NA		1		NA
    2635			NA		1		1		1
    1689			1		1		NA		NA
    3250			1		1		1		1
    3655			1		NA		1		1
    3589			NA		1		1		1

I am looking for some thing like this:

![Polymorphism density plot using a window size of 1,000,000 with an increment (step) of 100,000][1]

Any help will be appreciated!


  [1]: /media/images/a29910c4-0547-4588-9d66-48de0400
This is a Python solution:

    import pandas as pd
    import numpy as np
    import seaborn as sns
    df = pd.DataFrame({'POSITION': [1250,
      1750,
      1786,
      1812,
      1855,
      1896,
      2635,
      1689,
      3250,
      3655,
      3589],
     'A': [1.0, np.nan, 1.0, 1.0, 1.0, 1.0, np.nan, 1.0, 1.0, 1.0, np.nan],
     'B': [1.0, 1.0, np.nan, 1.0, 1.0, np.nan, 1.0, 1.0, 1.0, np.nan, 1.0],
     'C': [1.0, np.nan, 1.0, 1.0, 1.0, 1.0, 1.0, np.nan, 1.0, 1.0, 1.0],
     'D': [1.0, 1.0, 1.0, 1.0, 1.0, np.nan, 1.0, np.nan, 1.0, 1.0, 1.0]})
    
    
  
    window = 5
    step = 2
    
    df = df.set_index('POSITION').rolling(window).count().reset_index().iloc[::step, :]    
    df = df.melt(id_vars='POSITION', value_vars=['A','B','C','D'], value_name='polym', var_name='chromop')    
    sns.lineplot(data=df, x='POSITION',y='polym',hue='chromop')