I have a txt file that I read in through python that comes like this:
Text File:
18|Male|66|180|Brown
23|Female|67|120|Brown
16|71|192|Brown
22|Male|68|185|Brown
24|Female|62|100|Blue
One of the rows has missing data and the problem is that when I read it into a dataframe it appears like this:
   Age  Gender  Height Weight   Eyes
0   18    Male      66    180  Brown
1   23  Female      67    120  Brown
2   16      71     192  Brown    NaN
3   22    Male      68    185  Brown
4   24  Female      62    100   Blue
I'm wondering if there is a way to shift the row that has missing data over without shifting all columns. Here is what I have so far:
import pandas as pd
df = pd.read_csv('C:/Documents/file.txt', sep='|', names=['Age','Gender', 'Height', 'Weight', 'Eyes'])
df_full = df.loc[df['Gender'].isin(['Male','Female'])]
df_missing = df.loc[~df['Gender'].isin(['Male','Female'])]
df_missing = df_missing.shift(1,axis=1)
df_final = pd.concat([df_full, df_missing])
I was hoping to just separate out the ones with missing data, shift the columns by one, and then put the dataframe back to the data that has no missing data. But I'm not sure how to go about shifting the columns at a certain point. This is the result I'm trying to get to:
   Age  Gender  Height Weight   Eyes
0   18    Male      66    180  Brown
1   23  Female      67    120  Brown
2   16     NaN      71    192  Brown
3   22    Male      68    185  Brown
4   24  Female      62    100   Blue
It doesn't really matter how I get it done, but the files I'm using have thousands of rows so I can not fix them individually. Any help is appreciated. Thanks!

apply(). @Steveiepete