从Python中的不同列表中的文件中分割不同的数据(用空行分隔)

问题描述 投票:0回答:1

Python新手在这里,我有一个包含不同物理实验的文件,用空行分隔,如:

#t x
0 0
0 1
0 2

0 1
0 2
0 3

我想知道是否有一种简单的方法可以根据列和实验将我的数据拆分为多个列表(列出第一个实验的时间 t1 等..),以便我可以分别绘制不同的实验。

我尝试使用 numpy.loadtxtpandas.read_csv 但它们只是跳过空白行并合并所有数据。我搜索了诸如 c fscanf 函数之类的东西,该函数在空行处停止,但我找不到简单的方法。

python pandas numpy file split
1个回答
0
投票

没有直接的方法来分割 pandas,但是您可以读取整个文件并利用空行来分割数据框:

df = pd.read_csv('your_file.csv', sep=r'\s+', skip_blank_lines=False)

m = df.isna().all(axis=1)

dfs = [g for _,g in df[~m].groupby(m.cumsum())]

print(dfs)

输出:

[    #t    x    # DataFrame #1
 0  0.0  0.0
 1  0.0  1.0
 2  0.0  2.0,
     #t    x    # DataFrame #2
 4  0.0  1.0
 5  0.0  2.0
 6  0.0  3.0]
© www.soinside.com 2019 - 2024. All rights reserved.