Python 在excel中填写缺失的数据

Python 在excel中填写缺失的数据,python,excel,Python,Excel,我在excel中有几千行数据。但是,在一列中,仅每五行填充一行。我要做的是用上面一行的数据填充每一行下面的四个空行。我对python有一个初学者的掌握,因此如果有人能引导我朝着正确的方向前进,这将是一个很大的帮助。非常感谢 使用vba应该很容易修复(尽管您甚至可以使用创建的列和Excel公式执行类似的操作): 只需将intLast和intColumn值替换为您的值。使用vba应该很容易修复(尽管您甚至可以对创建的列和Excel公式执行类似操作): 只需将intLast和intColumn值替换为

我在excel中有几千行数据。但是,在一列中,仅每五行填充一行。我要做的是用上面一行的数据填充每一行下面的四个空行。我对python有一个初学者的掌握,因此如果有人能引导我朝着正确的方向前进,这将是一个很大的帮助。非常感谢

使用vba应该很容易修复(尽管您甚至可以使用创建的列和Excel公式执行类似的操作):


只需将intLast和intColumn值替换为您的值。

使用vba应该很容易修复(尽管您甚至可以对创建的列和Excel公式执行类似操作):


只需将intLast和intColumn值替换为您的值。

根据您的描述,在Excel中这样做似乎很容易:

假设
第1行
包含列标题,数据从
第2行开始。如果
列A
包含您的值(从
A2
开始),则在单元格
B2
中,使用公式
=If(ISBLANK(A2),B1,A2)
并填写。如果不为空,此公式将返回
A2
的值;如果
列A
中的当前值为空,则此公式将返回
列B
中的上一个值

请注意,这要求每组中的第一个单元格包含要填充的值


用于一般参考的post脚本:Excel很难处理公式生成的空白单元格,因此公式
=”
(或类似
=IFERROR(…,”)
)的结果不是空白的,但长度为0。根据您的描述,将
ISBLANK(A2)
更改为
LEN(A2),这似乎很容易在Excel中完成:

假设
第1行
包含列标题,数据从
第2行开始。如果
列A
包含您的值(从
A2
开始),则在单元格
B2
中,使用公式
=If(ISBLANK(A2),B1,A2)
并填写。如果不为空,此公式将返回
A2
的值;如果
列A
中的当前值为空,则此公式将返回
列B
中的上一个值

请注意,这要求每组中的第一个单元格包含要填充的值


用于一般参考的post脚本:Excel很难处理公式生成的空白单元格,因此公式
=”
(或类似
=IFERROR(…,”)
)的结果不是空白的,但长度为0。将
ISBLANK(A2)
更改为
LEN(A2)使用Python更新Excel数据有多种方法:

CSV模块

将Excel数据另存为csv。使用将作为元组、列表或字典导入Python。然后,遍历列表项,然后添加所需的数据

#!/usr/bin/python
import csv

with open('C:\Path\To\ExcelDataFile.csv', 'rt') as csvfile:
    csvReader = csv.reader(csvfile)
    data = []
    for row in csvReader:
         data.extend(row)

    for i in range(0, len(data)):
         if data[i][colnum] != None:
             data[i + 1][colnum] = <somevalue>   
             data[i + 2][colnum] = <somevalue>
             data[i + 3][colnum] = <somevalue>
             data[i + 4][colnum] = <somevalue>
#!/usr/bin/python
import pandas as pd

df = pd.read_excel('C:\Path\ToExcel\DataFile.xlsx', 'ExcelSheetName')
for i, row in df.iterrows()
    if df.loc[i, colnum] != None :
       df.loc[i + 1, column] = <somevalue>     
       df.loc[i + 2, colnum] = <somevalue>
       df.loc[i + 3, colnum] = <somevalue>
       df.loc[i + 4, colnum] = <somevalue>

使用Python更新Excel数据有多种方法:

CSV模块

将Excel数据另存为csv。使用将作为元组、列表或字典导入Python。然后,遍历列表项,然后添加所需的数据

#!/usr/bin/python
import csv

with open('C:\Path\To\ExcelDataFile.csv', 'rt') as csvfile:
    csvReader = csv.reader(csvfile)
    data = []
    for row in csvReader:
         data.extend(row)

    for i in range(0, len(data)):
         if data[i][colnum] != None:
             data[i + 1][colnum] = <somevalue>   
             data[i + 2][colnum] = <somevalue>
             data[i + 3][colnum] = <somevalue>
             data[i + 4][colnum] = <somevalue>
#!/usr/bin/python
import pandas as pd

df = pd.read_excel('C:\Path\ToExcel\DataFile.xlsx', 'ExcelSheetName')
for i, row in df.iterrows()
    if df.loc[i, colnum] != None :
       df.loc[i + 1, column] = <somevalue>     
       df.loc[i + 2, colnum] = <somevalue>
       df.loc[i + 3, colnum] = <somevalue>
       df.loc[i + 4, colnum] = <somevalue>

openpyxl可以帮助您。请使用建议的软件包,或者至少向我们提供您的数据样本和代码尝试。openpyxl可以帮助您。请使用建议的软件包,或者至少向我们提供您的数据样本和代码尝试。