【问题标题】:Iterate every 5 rows and create a file每5行迭代一次并创建一个文件
【发布时间】:2020-08-22 08:50:11
【问题描述】:

我有一个需要使用 python pandas 转换的 excel 文件。 我想为每 5 行创建一个文件,即如果我在 excel 中有 29 行。我想创建总共 6 个文件。前 5 个文件,每个文件包含 5 行,最后一个文件包含 4 行。有人可以帮忙吗?

【问题讨论】:

  • 您真的应该使用该站点的tour 并查看help center。专注于阅读How to Ask 以及如何提供minimal reproducible example。如果您保持这样,您的问题将很快关闭,因为它不是本网站的主题(根本)。要记住的一般经验法则是,该站点不是代码赠品。您应该在解决自己的问题上表现出一些努力,并询问您遇到困难的代码中的特定部分。祝你好运!

标签: python-3.x pandas


【解决方案1】:

你可以像这样读取整个excel文件:

df = pd.read_excel(filename)

然后,您可以像这样将df 分成 5 行的批次:

n = 5  #chunk row size
list_df = [df[i:i+n] for i in range(0,df.shape[0],n)]

list_df 将为您的案例提供 6 个块。其中 5 个有 5 行,第 6 个有 4 行。

【讨论】:

    【解决方案2】:

    您可以使用下面的代码。 c 只是一个计数器,x 是您需要的文件数,输出文件将命名为file_1.xlsx 等等:

    import pandas as pd
    import numpy as np
    import math
    
    df = pd.read_excel('path_to_your_file.xlsx') # create original df
    
    c = 1
    x = math.ceil(df.shape[0]/5)
    
    for i in np.array_split(df, x):
        filename = 'file_'+str(c)
        pd.DataFrame(i).to_excel(filename+'.xlsx', index=False)
        c += 1
    

    【讨论】:

      猜你喜欢
      • 2019-12-15
      • 2015-03-10
      • 1970-01-01
      • 1970-01-01
      • 2019-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多