【问题标题】:How to save or overwrite column values in a dataframe following for loop calculation如何在循环计算之后保存或覆盖数据框中的列值
【发布时间】:2019-11-22 23:49:57
【问题描述】:

我的数据框中有 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

提前谢谢你。

【问题讨论】:

    标签: python pandas list loops variables


    【解决方案1】:

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

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-12-27
      • 2021-03-03
      • 1970-01-01
      • 2021-03-22
      • 1970-01-01
      • 1970-01-01
      • 2023-01-07
      相关资源
      最近更新 更多