#python #pandas
#питон #панды
Вопрос:
У меня есть фрейм данных в формате:
d = {'A_B': [1, 2], 'A_C': [3, 4], 'B_C': [5, 6]} df = pd.DataFrame(data=d)
И список
li=[A,B,C]
Теперь я хочу добавить все элементы в строку, где имя столбца начинается с элемента из списка, и вычесть все элементы, где столбец заканчивается элементом из списка.
Результатом было бы:
index A B C 0 1 3 -1 5 -3-5 1 2 3 -2 6 -4-6
Как я могу подойти к этому?
Ответ №1:
В вашем случае мы можем сделать split
для столбца, а затем объединить их
s1 = df.copy() s1.columns = s1.columns.str.split('_').str[0] s2 = df.copy() s2.columns = s2.columns.str.split('_').str[1] out = pd.concat([s1,-s2],axis=1).groupby(level=0,axis=1).sum() Out[468]: A B C 0 4 4 -8 1 6 4 -10