首页 > 解决方案 > 如何在循环计算之后保存或覆盖数据框中的列值

问题描述

我的数据框中有 3 列,日期时间和降雪量。降雪数据需要从 kg m-3 s-1 转换为 mm/day。为此,我除以雪的密度并乘以一天中的秒数。(n/70)*86400

我想通过用绘图计算覆盖数据框中的降雪列来做到这一点。

我有一个循环函数,它转换值但不会将结果附加到列表中(这是我正在寻找的基本版本),但理想情况下,我希望它简单地覆盖数据框中的列以方便绘图。

def snowfallconverter(in1):
    snowfall_fix = []
    for ii in in1:
        snowfall_mm = (ii/70)*8600
        snowfall_fix.append(snowfall_mm)

数据集如下所示:

date       time     snowfall
01/11/2017 12:00:00 -4.43e-06
02/11/2017 12:00:00 -9.04e-08

先感谢您。

标签: pythonpandaslistloopsvariables

解决方案


此处不需要循环,仅按标量除和多列:

df['snowfall_mm'] = df['snowfall'] / 70 * 8600
print (df)
         date      time      snowfall  snowfall_mm
0  01/11/2017  12:00:00 -4.430000e-06    -0.000544
1  02/11/2017  12:00:00 -9.040000e-08    -0.000011

或覆盖同一列:

df['snowfall'] = df['snowfall'] / 70 * 8600
print (df)
        date      time  snowfall
0  01/11/2017  12:00:00 -0.000544
1  02/11/2017  12:00:00 -0.000011

推荐阅读