【问题标题】:Naming split data frames within for loop [duplicate]在for循环中命名拆分数据帧[重复]
【发布时间】:2020-05-28 07:08:06
【问题描述】:

我有一个包含 10000 行的数据框,我想将此数据框分成 10 个不同的数据框,其中前 1000 行在第一个 df 中,接下来是 1000 行在第二个 df 中。但是我想使用 for 循环来做到这一点。

df = pd.DataFrame(range(0,10000))

使用 for 循环我想将其分成 10 个 df,名称为 df1,df2,df3....df10 我想在for循环中迭代地命名它们

有什么办法可以做到这一点

谢谢

【问题讨论】:

    标签: python arrays pandas numpy dataframe


    【解决方案1】:

    试试下面的代码:

    import math
    
    start = 0; chunkSize = 100
    chunkNo = math.ceil(df.index.size / chunkSize)
    for n in range(1, chunkNo + 1):
        varName = f'df{n}'
        endNo = start + chunkSize
        globals()[varName] = df.iloc[start : endNo]
        print(f'Created: {varName}, rows [ {start:4} : {endNo:4} )')
        start += chunkSize
    

    创建一个将其名称作为字符串传递的变量是一个“肮脏的技巧”, 但至少它会导致预期的结果。

    现在打印 df1, df2, ... 来检查结果。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-15
      • 2017-08-16
      • 1970-01-01
      • 2023-02-16
      相关资源
      最近更新 更多