重新启动数据帧它对特定列计数

2024-09-29 23:24:02 发布

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

概述:

在我们的项目中,我们使用的是包含一些数据的CSV文件。我们称之为smal.csv这是一个有点笨重的文件,稍后将用于其他一些算法。(以下是链接到smal.csv文件对于您的浏览器来说,格式太差。)

文件将这样加载

filename = "smal.csv"
keyname = "someKeyname"
self.data[keyname] = spectral_data(pd.read_csv(filename, header=[0, 1], verbose=True))

光谱类是这样的。如您所见,我们实际上并没有保持数据帧的原样。你知道吗

class spectral_data(object):
    def __init__(self, df):

        try:
            uppercols = df.columns.levels[0]
            lowercols = list(df.columns.levels[1].values)
        except:
            df.columns = pd.MultiIndex.from_tuples(list(df.columns))
            uppercols = df.columns.levels[0]
            lowercols = list(df.columns.levels[1].values)

        for i, val in enumerate(lowercols):
            try:
                lowercols[i] = float(val)
            except:
                lowercols[i] = val

        levels = [uppercols, lowercols]
        df.columns.set_levels(levels, inplace=True)
        self.df = df

在我们加载它之后,我们想将它与另一组数据连接起来,也像smal.csv那样加载。你知道吗

我们的连接是这样完成的。你知道吗

new_df = pd.concat([self.data[dataSet1].df, self.data[dataSet2].df], ignore_index=True)

但是,ignore_index=True不起作用,因为我们连接的实际行不是索引。但是,我们不能简单地删除列,它是我们程序的其他部分所必需的。你知道吗

目标是:

我正在尝试将两个数据帧连接在一起,但是,我认为索引实际上并不是数据帧的索引。因此命令

pd.concat([df1.df, df2.df], ignore_index=True)

不起作用。我想也许用iloc来改变每一个单独的细胞会起作用,但我觉得这不是最直观的方法。你知道吗


我怎样才能得到这样的数据帧

[396 rows x 6207 columns]
    Unnamed: 0_level_0                        meta  ...       wvl       
    Unnamed: 0_level_1                      Sample  ...   932.695 932.89
0                    1                         NaN  ...    -12.33   9.67
1                    2                         NaN  ...     11.94   3.94
2                    3                         NaN  ...     -2.67  28.33
3                    4                         NaN  ...     53.22 -13.78
4                    1                         NaN  ...     43.28   
5                    2                         NaN  ...     41.33  47.33
6                    3                         NaN  ...    -21.94  12.06
7                    4                         NaN  ...    -30.94  -1.94
8                    5                         NaN  ...    -24.78  40.22

变成这个。你知道吗

[396 rows x 6207 columns]
    Unnamed: 0_level_0                        meta  ...       wvl       
    Unnamed: 0_level_1                      Sample  ...   932.695 932.89
0                    1                         NaN  ...    -12.33   9.67
1                    2                         NaN  ...     11.94   3.94
2                    3                         NaN  ...     -2.67  28.33
3                    4                         NaN  ...     53.22 -13.78
4                    5                         NaN  ...     43.28   
5                    6                         NaN  ...     41.33  47.33
6                    7                         NaN  ...    -21.94  12.06
7                    8                         NaN  ...    -30.94  -1.94
8                    9                         NaN  ...    -24.78  40.22

enter image description here


Tags: columns文件csv数据selftruedfdata

热门问题