import itertools
origins = [col for col in df.columns if col.startswith('Origin')]
destinations = [col for col in df.columns if col.startswith('Dest')]
for col_a, col_b in itertools.product(origins, destinations):
df[f'{col_a} - {col_b}'] = df[col_a] - df[col_b]
df[f'{col_a} + {col_b}'] = df[col_a] + df[col_b]
df = pd.DataFrame({"a":[1,2,3,4],"b":[4,3,2,1],"c":[8,7,6,5]})
df["a-b"] = df["a"] -df["b"]
#if you want to calculate for every column combination
for i in df.columns:
for j in df.columns:
if i != j and "-" not in j and "-" not in i:
df[f"{i}-{j}"] = df[i] - df[j]
2条答案
按热度按时间avwztpqn1#
只需遍历它,就可以使用f字符串进行命名
如果你使用itertools(在python中预装),你可以使它更容易阅读(如@MustafaAydın所建议的):
如果要执行多个操作,只需添加一行
如果您只想使用列的子集,例如,只从源到目的地,您可以执行以下操作:
idfiyjo82#
这很简单。
让我们定义一个包含两列
a
和b
的 Dataframe :输出:
现在,让我们创建上述两列之间的差异
瞧!现在你有了一个新的专栏。
对于多次迭代计算,我们可以采用基于循环的方法:
此方法在一个循环中计算所有列之间的所有差异。
输出: