Pandas数据帧多索引

2024-06-16 09:24:54 发布

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

我不熟悉Python、Pandas、Dash等,我正在尝试构造一个数据帧,这样我就可以创建一些Dash组件来绘制图形,从而允许用户查看和过滤数据。在

顶部是聚合特性,前3个是必需的,其余的是稀疏的,这取决于是否为该特性聚合了数据。在第一个省略号之后,有一些当天的汇总特征,第二个省略号之后是时间序列数据的汇总。在这个例子中,大约有3800个预先计算的聚合分组。在

我应该试着把聚合特征变成一个多重索引吗?在

runid是创建输出的分析运行的标识符(所有3818列都是相同的编号),而UID字段对于单个运行的每一列都应该是唯一的,但是多个运行将具有相同的UID和不同的runid。UID是RUNID和aggrevel的CHAR1到CHAR20的唯一组合。aggrevel是可以有一列或多列输出的分析分组。CHAR3_CHAR6_UNADJ是CHAR3和CHAR6的唯一组合,因此这两行被填充,而其余的CHAR行为null(很难)我当前的示例只是一次运行,但是有成千上万次运行,虽然我通常一次只处理一个,而且每次处理的数据不会超过10-20个。Char1到Char20仅在该列包含由该特征聚合的数据时填充。在

我的数据帧示例:

print(dft)
                           0      ...                 3818
UID                          32   ...                19980
RUNID                      1234   ...                 1234
AGGLEVEL             CHAR12_ADJ   ...    CHAR3_CHAR6_UNADJ
CHAR1                       NaN   ...                  NaN
CHAR2                       NaN   ...                  NaN
CHAR3                       NaN   ...                 1234
CHAR4                       NaN   ...                  NaN
CHAR5                       NaN   ...                  NaN
CHAR6                       NaN   ...                 ABCD
CHAR7                       NaN   ...                  NaN
CHAR8                       NaN   ...                  NaN
CHAR9                       NaN   ...                  NaN
CHAR10                      NaN   ...                  NaN
CHAR11                      NaN   ...                  NaN
CHAR12                     IJKL   ...                  NaN
CHAR13                      NaN   ...                  NaN
CHAR14                      NaN   ...                  NaN
CHAR15                      NaN   ...                  NaN
CHAR16                      NaN   ...                  NaN
CHAR17                      NaN   ...                  NaN
CHAR18                      NaN   ...                  NaN
CHAR19                      NaN   ...                  NaN
CHAR20                      NaN   ...                  NaN
...
STARTTIME   2018-08-22 00:00:00   ...  2018-08-22 00:00:00
MAXIMUM                   2.676   ...             0.654993
MINIMUM                  0.8868   ...             0.258181
...
00:00                    1.2288   ...             0.335217
01:00                    1.2828   ...             0.337848
02:00                    1.2876   ...             0.324639
03:00                     1.194   ...             0.314569
04:00                    1.2876   ...             0.258181
05:00                    1.1256   ...             0.284699
06:00                    1.4016   ...             0.364655
07:00                     1.122   ...             0.388968
08:00                    1.0188   ...             0.452711
09:00                     1.008   ...             0.507032
10:00                    1.0272   ...             0.546807
11:00                     0.972   ...             0.605359
12:00                     1.062   ...             0.641152
13:00                    0.8868   ...             0.625082
14:00                    1.1076   ...             0.623865
15:00                    0.9528   ...             0.654993
16:00                     1.014   ...             0.645511
17:00                     2.676   ...              0.62638
18:00                    0.9888   ...             0.551629
19:00                     1.038   ...             0.518322
20:00                    1.2528   ...              0.50793
21:00                      1.08   ...             0.456993
22:00                    1.1724   ...             0.387063
23:00                    1.1736   ...             0.345045

[62 rows x 3819 columns]

Tags: 数据uid特征特性nan汇总dash省略号
1条回答
网友
1楼 · 发布于 2024-06-16 09:24:54

你应该试着用dft.T来转置它。您可以将样本号从0到3818作为索引,这样选择列会更容易,例如使用dft['STARTTIME']

对于NaN,您应该执行dft = dft.replace('NaN',np.nan),这样Pandas就会明白它实际上是一个NaN而不是一个字符串(不要忘记在前面写import numpy as np)。然后可以使用pd.isna(dft)检查数据帧中是否有NaN,或者使用dft.dropna()来保持完整的行。在

相关问题 更多 >