Замена пустых полей хорошими данными на основе других столбцов в пандах - PullRequest
0 голосов
/ 07 ноября 2019

У меня есть фрейм данных df:

    A   B   C  Value
0   10  aa  MN     5
1   10  aa  NaN    6
2   12  bb  MN     5
3   13  cc  BK     7
4   13  cc  Nan    8
5   14  cc  SI     8

Я пытаюсь очистить дату так, чтобы, когда столбцы A и B были идентичны, он назначил C для соответствующего значения, объединил строки и сумму C

    df:
    A   B   C  Value
0   10  aa  MN     11
1   12  bb  MN     5
2   13  cc  BK     15
3   14  cc  SI     8

Следует отметить, что только столбец C имеет значения NaN. Все три значения должны составлять уникальные группы, но не являются исключительными для этой группы. Как бы я сделал это в моем Jupyterbook?

Ответы [ 2 ]

0 голосов
/ 11 ноября 2019

В конечном итоге я использовал ffill (), а затем group_by и sum (), чтобы получить нужную таблицу

df = df.ffill()
df = df.groupby(['A','B','C']).Value.sum().reset_index()
df_incident_local_count.head()

        df:
    A   B   C  Value
0   10  aa  MN     11
1   12  bb  MN     5
2   13  cc  BK     15
3   14  cc  SI     8

Я не знаю, куда был добавлен комментарий, но кто-то еще рекомендует ffill (). Это заслуга этого незнакомца.

0 голосов
/ 07 ноября 2019

Дайте функции агрегирования для 'c' и 'value'. Затем агрегируйте по группам.

agg_func = {'c': 'max', 'value':'sum'}
df_new = df.groupby(['a', 'b']).agg(agg_func)
...