我有以下列表和数据框:
import pandas as pd
cols = pd.MultiIndex.from_tuples([("K", "A1", "A"),
("K", "B1", "B"),
("K", "C1", "C"),
("M", "A1", "A"),
("M", "B1", "B"),
("M", "C1", "C")])
data = [[5, 10, 40, 4, 8, 9], [2, 15, 70, 1, 7, 3], [6, 14, 60, 12, 41, 61]]
df = pd.DataFrame(data, columns=cols)
lst = [5, '*', 'A1.A', '+', 'C1.C']
列多索引名称在列表中列出的方式可以更改,如果可以提供帮助的话.
我想创建一个代码来执行第一个类似5 x df['A1','A'] + df['C1','C']
的等式,但对于匹配第二级和第三级的所有列组合,返回以下结果:
df[("K", "N1", "N")] = 5 * df[("K", "A1", "A")] + df[("K", "C1", "C")]
df[("M", "N1", "N")] = 5 * df[("M", "A1", "A")] + df[("M", "C1", "C")]
这有可能吗?