使用 Pandas 按列向上填补空值

本文介绍使用 Pandas 库,遍历 DataFrame 的前 60 行和第 1 到 160 列,将空值由该列下一个不为空的值向上填补。如果该列没有不为空的值,则跳出循环。

示例代码:

import pandas as pd

# 读取数据
data = pd.read_csv('data.csv')

# 遍历第1列到160列
for col in range(1, 161):
    # 遍历初始行到60行
    for row in range(0, 60):
        # 如果元素为空值
        if pd.isnull(data.iloc[row, col]):
            # 将所有空值由该列下一个不为空的值按列向上填补
            for i in range(row+1, 61):
                if not pd.isnull(data.iloc[i, col]):
                    data.iloc[row, col] = data.iloc[i, col]
                    break
            # 如果该列已没有不为空的值,则跳出该列循环
            if pd.isnull(data.iloc[row, col]):
                break

# 输出结果
print(data)

注意事项:

  • 此代码假设数据的第 1 行到 60 行都有值,否则可能会出现填补不完整的情况。
  • 如果数据中有特殊字符或格式不规范的情况,可能需要对代码进行一些修改才能正确执行。

其他方法:

除了使用循环遍历的方式,还可以使用 Pandas 库提供的其他方法进行数据填补,例如 fillna() 方法。

相关链接:

Pandas 数据填补:按列向上填补空值

原文地址: https://www.cveoy.top/t/topic/nDyP 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录