Нужно написать код для замены пропусков с условиями

Ребята, помогите. Я новичок. Надо решить такой вопрос. Есть пропуски в файле csv в столбце Year_of_Release

Name. Platform Year_of_Release Genre
Madden NFL 2004 PS2. Sports
Madden NFL 2004 XB. 2003.0. Sports
Madden NFL 2004 GC. 2003.0. Sports
Madden NFL 2004 GBA. 2003.0. Sports

Как написать код так чтобы пропуск заполнялся данными если они соответствуют той же Name + Genre?

Пробовал так data.loc[data['year_of_release'] == 555, 'year_of_release'] = data.loc[data['year_of_release'] == 555, 'name'] Но он заполняет именами, а не годом.

import pandas as pd

pth1 = '/content/General project_1.csv'
pth2 = '/datasets/games.csv'
try:
  data = pd.read_csv(pth2)
except:
  data = pd.read_csv(pth1)
else:
     print('Что-то не так')
data.columns = data.columns.str.lower()
data[['year_of_release']] = data[['year_of_release']].fillna(555)
data.loc[data['year_of_release'] == 555, 'name'] = data.loc[data['year_of_release'] == 555, 'year_of_release']

Ответы (1 шт):

Автор решения: Алексей Р

Можно сгруппировать по двум полям и применить методы .bfill() и .ffill() для заполнения пустот назад и вперед последними (перед пустотами) непустыми значениями из столбца.

df = pd.DataFrame({'Name': ['Madden NFL 2004', 'Madden NFL 2004', 'Madden NFL 2004', 'Madden NFL 2004','Madden NFL 2004', 'Madden NFL 2004', 'Madden NFL 2004', 'Madden NFL 2004'],
                   'Platform': ['PS2.', 'XB.', 'GC.', 'GBA.', 'PS2.', 'XB.', 'GC.', 'GBA.'],
                   'Year_of_Release': [np.nan, '2003.0.', '2003.0.', '2003.0.', np.nan, '2004.0.', '2004.0.',np.nan],
                   'Genre': ['Sports', 'Sports', 'Sports', 'Sports', 'Action', 'Action', 'Action', 'Action']})
df['Year_of_Release'] = df.groupby(['Name','Genre'])['Year_of_Release'].bfill().ffill()
print(df)
              Name Platform Year_of_Release   Genre
0  Madden NFL 2004     PS2.         2003.0.  Sports
1  Madden NFL 2004      XB.         2003.0.  Sports
2  Madden NFL 2004      GC.         2003.0.  Sports
3  Madden NFL 2004     GBA.         2003.0.  Sports
4  Madden NFL 2004     PS2.         2004.0.  Action
5  Madden NFL 2004      XB.         2004.0.  Action
6  Madden NFL 2004      GC.         2004.0.  Action
7  Madden NFL 2004     GBA.         2004.0.  Action
→ Ссылка