Мне нужно очистить набор данных, где некоторые столбцы (считанные из файла .csv) могут иметь несколько имен, перечисленных через запятую.
Мне нужно сделать в пандах следующее:
Есть ли у вас какие-нибудь приятные трюки с пандазами?
Здесьпростой код:
import pandas as pd
import numpy as np
df = pd.DataFrame(data=np.random.random(size=(5,6)),
columns={'a', 'b', 'c, d', 'e', 'f, g', 'h'})
df=
a b c, d e f, g h
0 0.771418 0.371685 0.072876 0.153071 0.169513 0.399769
1 0.667551 0.886779 0.949341 0.869588 0.226275 0.273370
2 0.768456 0.945822 0.167757 0.584886 0.328152 0.246415
3 0.354713 0.690585 0.027916 0.237110 0.875449 0.430142
4 0.590518 0.819043 0.803876 0.909385 0.382452 0.867369
Мне нужно:
df_new =
a b c d e f g h
0 0.771418 0.371685 0.072876 0.072876 0.153071 0.169513 0.169513 0.399769
1 0.667551 0.886779 0.949341 0.949341 0.869588 0.226275 0.226275 0.273370
2 0.768456 0.945822 0.167757 0.167757 0.584886 0.328152 0.328152 0.246415
3 0.354713 0.690585 0.027916 0.027916 0.237110 0.875449 0.875449 0.430142
4 0.590518 0.819043 0.803876 0.803876 0.909385 0.382452 0.382452 0.867369
ОБНОВЛЕНИЕ
И что произойдет, если у меня будут повторяться имена столбцов:
df = pd.DataFrame(data=np.random.random(size=(5,6)),
columns={'a', 'b', 'c, d', 'c', 'f, g', 'h'})
и желаемые результаты должны быть
df_new_v2 =
a b c d c.1 f g h
0 0.771418 0.371685 0.072876 0.072876 0.153071 0.169513 0.169513 0.399769
1 0.667551 0.886779 0.949341 0.949341 0.869588 0.226275 0.226275 0.273370
2 0.768456 0.945822 0.167757 0.167757 0.584886 0.328152 0.328152 0.246415
3 0.354713 0.690585 0.027916 0.027916 0.237110 0.875449 0.875449 0.430142
4 0.590518 0.819043 0.803876 0.803876 0.909385 0.382452 0.382452 0.867369