从多个数据文件中提取列,并将它们保存到新数据框架中的单独列中

2024-04-26 00:19:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我在一个文件夹中有12个数据文件,每个文件如下所示:

,Unnamed: 0,Date & time Time (s)    00 Nil  01 P1   02 P2   03 P3
0,0,9/9/2013  03:24:36.956017   0.00E+00    0.00E+00    -6.25E-01   -6.25E-01   -4.93E-03
1,1,9/9/2013  03:24:36.966017   1.00E-02    0.00E+00    -6.25E-01   -6.25E-01   -4.49E-03
2,2,9/9/2013  03:24:36.976017   2.00E-02    0.00E+00    -6.25E-01   -6.25E-01   -5.29E-03
3,3,9/9/2013  03:24:36.986017   3.00E-02    0.00E+00    -6.25E-01   -6.25E-01   -4.08E-03
4,4,9/9/2013  03:24:36.996017   4.00E-02    0.00E+00    -6.25E-01   -6.25E-01   -3.32E-03
5,5,9/9/2013  03:24:37.006017   5.00E-02    0.00E+00    -6.25E-01   -6.25E-01   -4.80E-03
6,6,9/9/2013  03:24:37.016017   6.00E-02    0.00E+00    -6.25E-01   -6.25E-01   -4.37E-03
7,7,9/9/2013  03:24:37.026017   7.00E-02    0.00E+00    -6.25E-01   -6.25E-01   -3.68E-03
8,8,9/9/2013  03:24:37.036017   8.00E-02    0.00E+00    -6.25E-01   -6.25E-01   -4.59E-03
9,9,9/9/2013  03:24:37.046017   9.00E-02    0.00E+00    -6.25E-01   -6.25E-01   -3.65E-03
10,10,9/9/2013  03:24:37.056017 1.00E-01    0.00E+00    -6.25E-01   -6.25E-01   -3.93E-03
11,11,9/9/2013  03:24:37.066017 1.10E-01    0.00E+00    -6.25E-01   -6.26E-01   -3.86E-03
12,12,9/9/2013  03:24:37.076017 1.20E-01    0.00E+00    -6.25E-01   -6.25E-01   -3.89E-03

例如,我想从每个数据文件中提取第4列,将它们作为单独的列保存在一个新的数据框中,每个列的标题是该列来自的文件的名称。 我找到了这个密码

    import glob
    import numpy as np
    import matplotlib.pyplot
    import pandas as pd

    import glob
    import pandas as pd

    file_list = glob.glob('*.dat')
    cols = [4] # add more columns here

    df = pd.DataFrame()

    for f in file_list:
        df = df.append(
            pd.read_csv(f, delimiter='\s+', header=None, usecols=cols),
            ignore_index=True,    
        )

    arr = df.values

但是,所有数据文件中的列都合并到数据帧中的一个列中。 我想把它们分成不同的列,每个列标题都是从中提取列的原始文件的名称。 有人能帮我吗?我是python的初学者


Tags: 文件数据import文件夹名称标题pandasdf
1条回答
网友
1楼 · 发布于 2024-04-26 00:19:28

您可以将每个csv作为单独的数据帧读取,并将其保存在列表中,然后处理这些数据帧:

dataFrames = []
for f in file_list:
        df = pd.read_csv(f, delimiter='\s+', header=None, usecols=cols)
        dataFrames.append(df)

相关问题 更多 >