首页 > 解决方案 > 如何将文件拆分为起始索引和结束索引之间的不规则部分?

问题描述

我想将一个文件拆分为 3 个较小的文件。不幸的是,我不能在相同的部分做到这一点,因为我不能从A两个不同文件中的列中获得相同的唯一值。这就是为什么我在给定的文件中获取结束索引的原因如下:

import pandas as pd
import numpy as np

df = pd.read_excel('ex_1.xls')

x = []
for id, df_i in  enumerate(np.array_split(df, 3)):

    df2 = df[df['A'] == df_i['A'][-1:].to_string(index=False).strip()][-1:]
    x.append(df2.index[0])

print(x) 

Example output x: 
[15, 67, 122]

这意味着第一个文件应该包含df索引 1 到 15 之间的数据帧值,第二个文件包含 16 到 67 之间的数据,第三个文件包含 68 到 122 之间的数据。当然,每个文件都必须包含来自主数据帧的标题df。我怎样才能做到这一点?

标签: pythonpython-3.xpandasnumpy

解决方案


我相信您可以添加第一个值,然后zip添加1索引并选择 in DataFrame.loc

x = [15, 67, 122]
y = np.insert(x, 0, 0)
print (y)
[  0  15  67 122]

dfs = [df.loc[s:e] for s, e in zip(y + 1, y[1:])]

推荐阅读