使用熊猫如何将一个数据帧按行拆分为多个大小为N的数据帧

时间:2019-04-26 13:50:11

标签: python pandas

我有一个包含数千行的csv文件。我加载文件并将其转换为pandas数据框,但随后我希望每12行分割一次文件,并将其存储为数据框列表。我该怎么做?

EVALUATION_FILE = 'training/evaluation.csv'

data = pd.read_csv(
    EVALUATION_FILE,
    engine='python',
    index_col=None
)

我以这种方式加载文件,但我希望对其进行更改,以使其每12行分割并追加到一个列表中。我该怎么办?

2 个答案:

答案 0 :(得分:7)

chunksize

使用此参数时,read_csv返回一个迭代器,其中每次迭代都返回一个新块。

data = [*pd.read_csv(EVALUATION_FILE, chunksize=12)]

numpy.split

如果偶然您已经读入数据框,并希望在事后将其拆分。将nupmy.split与定义分割点的数组一起使用。

data = np.split(df, range(12, len(df), 12))

答案 1 :(得分:2)

groupby之后检查read_csv

data=[y for x , y in df.groupby(data.index//12)]

EVALUATION_FILE = 'training/evaluation.csv'

data = pd.read_csv(
    EVALUATION_FILE,
    engine='python',
    index_col=None
)