If your lists are always the same length, you can use numpy to slice the element you want, then reconstruct the DataFrame. Might be faster since it avoids explicit looping.
import numpy as np
import pandas as pd
df = pd.DataFrame([[list('abcde') for _ in range(4)] for _ in range(3)],
columns=['Jan', 'Feb', 'Mar', 'April'])
# Jan Feb Mar April
#0 [a, b, c, d, e] [a, b, c, d, e] [a, b, c, d, e] [a, b, c, d, e]
#1 [a, b, c, d, e] [a, b, c, d, e] [a, b, c, d, e] [a, b, c, d, e]
#2 [a, b, c, d, e] [a, b, c, d, e] [a, b, c, d, e] [a, b, c, d, e]
Nelem = 0 # Element in the list you want
pd.DataFrame(np.array(df.to_numpy().tolist(), dtype='object')[:, :, Nelem],
index=df.index, columns=df.columns)
Jan Feb Mar April
0 a a a a
1 a a a a
2 a a a a
ā