Пожалуйста, дайте мне знать, если это дубликат, но я считаю, что я проверил большинство подобных вопросов, и, к сожалению, я еще не нашел ответа. Я новичок в пандах, так что заранее извините.
После большого количества слияний и группирования у меня есть датафрейм, что-то вроде этого:
0 A B C D E F G H I J K L
1 x 0 1 1 2 1 3 1 2 3 3 4
2 x 1 0 0 0 0 0 0 0 0 0 0
3 y 0 4 5 1 1 2 1 3 4 5 3
4 y 1 0 0 0 0 0 0 0 0 0 0
5 z 1 0 0 0 0 0 0 0 0 0 0
Если B имеет значение, остальные столбцы не имеют значения, а остальные столбцы имеют значения, а B - нет. Значения никогда не равны NaN, они всегда равны 0.0.
Мой ожидаемый результат будет:
0 A B C D E F G H I J K L
1 x 1 1 1 2 1 3 1 2 3 3 4
2 y 1 4 5 1 1 2 1 3 4 5 3
3 z 1 0 0 0 0 0 0 0 0 0 0
Я следил за ответами на несколько похожих вопросов здесь. Я пытался groupby(A).agg('sum')
Попробовал ответ на этот и несколько других. Результат всегда одинаков, возвращенный фрейм данных все еще имеет дубликаты, и значения не суммируются, Edit: или значения полностью удаляются.
Пример кадра данных, с которым у меня возникла проблема:
{'Higher managerial administrative and professional occupations': [0.0,
2332.0,
0.0,
240.0,
0.0],
'Intermediate occupations': [0.0, 538.0, 0.0, 670.0, 0.0],
'Lower managerial administrative and professional occupations': [0.0,
2098.0,
0.0,
733.0,
0.0],
'Lower supervisory and technical occupations': [0.0, 166.0, 0.0, 321.0, 0.0],
'MSOA11CD': ['E02000001',
'E02000001 ',
'E02000002',
'E02000002 ',
'E02000003'],
'Never worked and long-term unemployed': [0.0, 225.0, 0.0, 503.0, 0.0],
'Not classified': [0.0, 471.0, 0.0, 410.0, 0.0],
'Routine occupations': [0.0, 168.0, 0.0, 659.0, 0.0],
'Semi-routine occupations': [0.0, 290.0, 0.0, 964.0, 0.0],
'Small employers and own account workers': [0.0, 416.0, 0.0, 478.0, 0.0],
'number of crimes': [2125.0, 0.0, 517.0, 0.0, 1095.0]}
MSOA11CD
- это столбец A
сверху, а number of crimes
- это столбец B
.
Этот фрейм данных был создан путем слияния
{'Higher managerial administrative and professional occupations': [2332.0,
240.0,
554.0,
288.0,
275.0],
'Intermediate occupations': [538.0, 670.0, 1294.0, 847.0, 894.0],
'Lower managerial administrative and professional occupations': [2098.0,
733.0,
1408.0,
875.0,
927.0],
'Lower supervisory and technical occupations': [166.0,
321.0,
516.0,
383.0,
516.0],
'MSOA11CD': ['E02000001 ',
'E02000002 ',
'E02000003 ',
'E02000004 ',
'E02000005 '],
'Never worked and long-term unemployed': [225.0, 503.0, 656.0, 407.0, 560.0],
'Not classified': [471.0, 410.0, 635.0, 386.0, 542.0],
'Routine occupations': [168.0, 659.0, 752.0, 603.0, 883.0],
'Semi-routine occupations': [290.0, 964.0, 1156.0, 714.0, 1145.0],
'Small employers and own account workers': [416.0,
478.0,
741.0,
442.0,
583.0]}
и
{'MSOA11CD': ['E02000001', 'E02000002', 'E02000003', 'E02000004', 'E02000005'], 'number of crimes': [2125, 517, 1095, 555, 914]}
, который был создан с помощью groupby
на
{'Falls within': ['British Transport Police',
'City of London Police',
'Metropolitan Police Service',
'Metropolitan Police Service',
'Metropolitan Police Service'],
'MSOA11CD': ['E02000001', 'E02000001', 'E02000001', 'E02000002', 'E02000003'],
'number of crimes': [98, 1365, 662, 517, 1095]}
В идеале я хотел сохранить столбец Falls within
, однако группировка по нему привела к потере всех числовых данных.
Надеюсь, это поможет. Спасибо.