У меня есть текстовый файл, который я прочитал через python, который выглядит следующим образом:
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
В одной из строк отсутствуют данные, и проблема заключается в том, что когда я читаю его в фрейм данных выглядит так:
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
Мне интересно, есть ли способ сместить строку, в которой отсутствуют данные, без смещения всех столбцов. Вот что у меня получилось:
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])
Я надеялся просто выделить те, у которых пропущены данные, сместить столбцы на единицу, а затем вернуть фрейм данных обратно в данные, в которых нет пропущенных данных. , Но я не уверен, как go о смещении столбцов в определенной точке. Вот результат, который я пытаюсь получить:
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
Не имеет значения, как я это делаю, но файлы, которые я использую, имеют тысячи строк, поэтому я не могу их исправить индивидуально. Любая помощь приветствуется. Спасибо!