熊猫数据框多索引 - python

我是Python,Pandas,Dash等的新手。我正在尝试构建数据框,以便为图表创建一些破折号组件,以允许用户查看和过滤数据。

最上面是聚合特征,前三个是必需的,其余稀疏则基于是否针对该特征聚合了数据。在第一个椭圆之后,有一天的一些摘要特征,在第二个椭圆之后是聚合的时间序列数据。在此示例中,大约有3800个预先计算的聚合分组。

我应该尝试将汇总特征制作成MultiIndex吗?

RUNID是创建输出的分析运行的标识符(所有3818列均使用相同编号),而UID字段对于单次运行的每一列均应唯一,但是多个运行将具有相同的UID,但具有不同的RUNID。 UID是该RUNID和AGGLEVEL的CHAR1至CHAR20的唯一组合。 AGGLEVEL是分析分组,可能具有一列或多列输出。 CHAR3_CHAR6_UNADJ是CHAR3和CHAR6的唯一组合,因此填充了这两行,而其余CHAR行为空(很好,NaN)。我当前的示例只是一次运行,但是有成千上万次运行,尽管我通常只关注一个一个时间,并且每个数据的子集一次处理的时间可能不会超过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]

参考方案

您应该尝试使用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()保留完整的已完成行。

Python sqlite3数据库已锁定 - python

我在Windows上使用Python 3和sqlite3。我正在开发一个使用数据库存储联系人的小型应用程序。我注意到,如果应用程序被强制关闭(通过错误或通过任务管理器结束),则会收到sqlite3错误(sqlite3.OperationalError:数据库已锁定)。我想这是因为在应用程序关闭之前,我没有正确关闭数据库连接。我已经试过了: connectio…

Python-Excel导出 - python

我有以下代码:import pandas as pd import requests from bs4 import BeautifulSoup res = requests.get("https://www.bankier.pl/gielda/notowania/akcje") soup = BeautifulSoup(res.cont…

有没有一种方法可以通过指定时间范围将两个表在时间列上的大熊猫中连接在一起? - python

说我有两个数据帧df1和df2。它们都具有以下形式的列Date/Time 01-06-2013 23:00:00 02-06-2013 01:00:00 02-06-2013 21:00:00 02-06-2013 22:00:00 02-06-2013 23:00:00 我想要一个功能join_temporal(range=<num>, uni…

python-docx应该在空单元格已满时返回空单元格 - python

我试图遍历文档中的所有表并从中提取文本。作为中间步骤,我只是尝试将文本打印到控制台。我在类似的帖子中已经看过scanny提供的其他代码,但是由于某种原因,它并没有提供我正在解析的文档的预期输出可以在https://www.ontario.ca/laws/regulation/140300中找到该文档from docx import Document from…

熊猫使用条件删除一列的重复项 - python

我有一个这样的数据框:A B 239616412 none 239616414 name2 239616417 none 239616417 none 239616417 none 239616418 name1 239616418 none 239616428 name1 239616429 none 239616429 none 239616429 na…