Я использую этот код, чтобы получить разницу между значениями строк для всех комбинаций столбцов (tups).
new_df = df[['seg_wd','ter_wd','qua_wd','qui_wd','sex_wd']]
def all_subsets(ss):
return chain(*map(lambda x: combinations(ss, x), range(1, len(ss)+1)))
- получить все комбинации
tups = list(all_subsets(new_df.columns))
tups = tups[5:15]
- для каждая комбинация нескольких значений
df1 = pd.concat([new_df.loc[:,c].diff(axis=1) for c in tups], axis=1)
Однако на выходном кадре данных я получаю 20 столбцов вместо 10. Поскольку у меня повторяются имена столбцов, я не могу выбрать нужные столбцы по их имени. Как я могу выбрать столбцы, используя их индекс? (Примечание: в этом случае мне нужны столбцы [1,3,5,7,9,11,13,15,17,19])
Или кто-нибудь знает более эффективный способ получения вывода Мне нужно?
Большое спасибо:)