首页 > 解决方案 > 根据列名计算并获取名称作为计算的一部分

问题描述

我需要根据列名计算差异,并将列名的一部分用作计算的一部分。

数据框

因此,目前,促销值的列是空的。我需要计算第一行 get2for30 将是 (X-30) 和第二列 GET2FOR31 (x-31) 并显示相应“单元格”中的值。我想知道是否有办法使用熊猫来做到这一点。

更新 - 我遇到的另一个问题是 Get2forX 的列上升到 90,所以最后一列是 get2for90。我想知道是否有类似函数适用于所有这些类型的列。(无需编写 90 行代码)

标签: pythonpandas

解决方案


You can simply do this:-

df['GET2FOR30'] = df.Prices - 30
df['GET2FOR31'] = df.Prices - 31
... 

Or for big number of columns:-

cols = df.columns
initial = 30
for i, j in enumerate(cols[2:]):
    if 'GET2FOR'in j:
        df[j] = df.Prices - (i + initial)

推荐阅读