熊猫通过乘以其他列来创建列

时间:2020-03-03 23:03:40

标签: python pandas dataframe

我有一个数据框,下面有列

df = pd.DataFrame({'t0_p0':[1,2,3], 't1_p0':[1,2,3], 't2_p0':[1,2,3], 't0_p1':[1,2,3], 't1_p1':[1,2,3], 't2_p1':[1,2,3], 't0_p3':[1,2,3], 't1_p3':[1,2,3], 't2_p3':[1,2,3], 'Month_1':[1,0,0],'Month_2':[0,1,0] 'Hour_1':[1,0,0],'Hour_2':[0,1,0], 'x_1':[0,1,1], 'holid':[2,7,8]})

使用上面的数据框,我想将“月份”和“小时”列乘以其他每个列。例如,t0_p0 * Month_1,t0_p0 * Month_2,...,'t2_P3'* Month_2,以及小时数相同。我不会将月份乘以小时。

,乘法结果应添加到名为Month1_t0_p0或Hour2_t2_p3的新列中。所以基本上两列的名称乘以在一起。

这样做的Python方式是什么。我知道如何将列相乘:

df['Month1_t0_p0'] = df['Month_1'] * df['t0_p0']

但是,我不确定如何自动选择要乘法的列,并按照上述方法创建和命名列。

请在这里帮助我。

非常感谢。

2 个答案:

答案 0 :(得分:2)

您可以这样做:

{""OrdKey"":0,""OrdNum"":0,""Menu"":""HH"",""OrdTypeKey"":2,""OrdType"":""Pick Up"",""Subtotal"":11.7400,""Tax"":1.00,""DlvyFee"":0.0,""DlvyFeeTxbl"":false,""OrigTotal"":11.7400,""AdjAmt"":0.0}

答案 1 :(得分:0)

也许是一个开始:仅使用要与之相乘的那些列创建一个新的df,然后迭代该新的df。通过串联,用新列以及您不想与之相乘的列创建最终df。我不确定如何自动生成列的名称,也不确定迭代的确切代码。抱歉如前所述,也许是一个入门者。