python - 如何使用 if-else 条件在数据集中插入缺失的行序列?

标签 python python-3.x

我尝试使用 if-else 条件在数据集中插入缺失的数据行序列,并将数据集的完整行计数附加到新列表中。

尝试使用多个 if-else 条件和嵌套 if-else 条件来实现预期输出,但无法获得正确的数据集预期输出。

是否有其他选项可以在不使用 if-else 条件或嵌套 if-else 条件的情况下实现预期输出?

我的代码如下:

year = 2016
month = 2
day = 3
rainAmount = 0.2
rainList = []

for y in range(2015,2017):
    if y == year:
        for m in range(1,3):
            if m == month:
                for d in range(1,4):
                    if d == day:
                        newRain = rainAmount
                    else:
                       newRain = 0
                   rainList.append([y,m,d,newRain])
for r in rainList:
    print(r)

预期输出:

[year,month,day,newRain]

[2015,1,1,0]
[2015,1,2,0]
[2015,1,3,0.2]

[2015,2,1,0]
[2015,2,2,0]
[2015,2,3,0.2]

[2016,1,1,0]
[2016,1,2,0]
[2016,1,3,0.2]

[2016,2,1,0]
[2016,2,2,0]
[2016,2,3,0.2]

实际输出:

[2016,2,1,0]
[2016,2,2,0]
[2016,2,3,0.2]

最佳答案

您可以使用列表理解来做到这一点。

result  = [[y, m, d,  0.2 if d == 3 else 0 ] for y in range(2015,2017) for m in range(1,3) for d in range(1,4)]
for i in result:
    print(i)

输出

[2015, 1, 1, 0]
[2015, 1, 2, 0]
[2015, 1, 3, 0.2]
[2015, 2, 1, 0]
[2015, 2, 2, 0]
[2015, 2, 3, 0.2]
[2016, 1, 1, 0]
[2016, 1, 2, 0]
[2016, 1, 3, 0.2]
[2016, 2, 1, 0]
[2016, 2, 2, 0]
[2016, 2, 3, 0.2]

List Comprehensions in Python

关于python - 如何使用 if-else 条件在数据集中插入缺失的行序列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57174693/

相关文章:

python - 如何在 Python 中将元组转换为整数(内有示例)?

python - 重载实例[key] += val

python - 通过它们在 python 中的接近度来聚类值(机器学习?)

python - 发出具有任意签名的新型 PyQt 信号

python - 从另一个装饰器创建装饰器(python)

python - 在方法中使用 Python property()

python - 向现有模型添加一些模型引用

python - 为 numpy 函数创建别名

python - 打印完整的 ascii 艺术

python argparse : allow unregistered arguments