根据功能将列添加到熊猫数据框

时间:2018-08-27 16:21:55

标签: pandas zip

the post的扩展名中,我认为它尚未通过使用命令shift来完成其搜索。这样只会逐列移动,如果我们希望将整个列映射到另一列,那不是我们想要的。

我希望将几列映射到一个新列,并将其作为列添加到现有数据框。

所以输入将类似于:

DATE (MM/DD/YYYY)  HOUR-MST  AWS @ 50m [m/s]  AWS @ 80m [m/s]   AMPLC (2-80m)
1/1/2009  1  8.4262  9.1207  0.1354
1/1/2009  2  9.4238  9.9013  0.1312
1/1/2009  3  5.0494  5.3328  0.0892
1/1/2009  4  4.5928  4.8802  0.1014

假设数据帧的名称为wind,然后使用等式: (此处AWS是风速)

wind['new_column1'] = wind['AWS @ 50m [m/s]']**3 * wind['AMPLC (2-80m)']
wind['new_column2'] = wind['AWS @ 80m [m/s]']**3 * wind['AMPLC (2-80m)']

输出将是:

DATE (MM/DD/YYYY)  HOUR-MST  AWS @ 50m [m/s]  AWS @ 80m [m/s]   AMPLC (2-80m)   new_column1   new_column2
1/1/2009  1  8.4262  9.1207  0.1354  xxx1  xxx2
1/1/2009  2  9.4238  9.9013  0.1312  xxx1  xxx2 
1/1/2009  3  5.0494  5.3328  0.0892  xxx1  xxx2
1/1/2009  4  4.5928  4.8802  0.1014  xxx1  xxx2

然后,我也将半径作为另一个参数-因此,我更喜欢使用for循环从np.arange(10, 20, 2)中选择一个范围内的数字并将其作为系数相乘。

我的主意如下:

count = 0
for rad in range(rad_range):
    wind['new_column1'+count] = wind['AWS @ 50m [m/s]']**3 * wind['AMPLC (2-80m)'] * rad**2
    count += 1 

请给我一些建议吗?预先谢谢你!

0 个答案:

没有答案