Есть ли способ добавить значения столбца с тем же именем столбца, используя Python? - PullRequest
1 голос
/ 07 июня 2019

У меня есть набор данных с некоторыми столбцами, имеющими идентичное имя столбца. Я хочу объединить столбец с тем же именем столбца, чтобы значения добавлялись в виде строк. А для столбцов, у которых нет столбца с одинаковым именем столбца, к строкам добавляется 0.

Я пытался расплавиться, но, похоже, он не работает в нужном мне формате.

Пример данных:

print (df)
       Date  Column_A  Column_A  Column_B
0  1/2/2018         3         2         3
1  2/2/2018         4         7         1
2  3/2/2018         2         2         6
3  4/2/2018         1         1         4    

Ожидаемый результат:

       Date  Column_A  Column_B
0  1/2/2018         3       3.0
1  2/2/2018         4       1.0
2  3/2/2018         2       6.0
3  4/2/2018         1       4.0
4  1/2/2018         2       0.0
5  2/2/2018         7       0.0
6  3/2/2018         2       0.0
7  4/2/2018         1       0.0

1 Ответ

1 голос
/ 07 июня 2019

Идея состоит в том, чтобы создать MultiIndex в столбцах с GroupBy.cumcount, затем изменить его на DataFrame.stack, отсортировав по второму уровню MultiIndex по DataFrame.sort_index и последний удалить второй уровень с преобразованием первого уровня в столбец Date в два раза DataFrame.reset_index:

df = df.set_index('Date')
s = df.columns.to_series()

df.columns = [df.columns, s.groupby(s).cumcount()]
df = df.stack().sort_index(level=1).fillna(0).reset_index(level=1, drop=True).reset_index()
print (df)
       Date  Column_A  Column_B
0  1/2/2018         3       3.0
1  2/2/2018         4       1.0
2  3/2/2018         2       6.0
3  4/2/2018         1       4.0
4  1/2/2018         2       0.0
5  2/2/2018         7       0.0
6  3/2/2018         2       0.0
7  4/2/2018         1       0.0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...