gpt4 book ai didi

python - Pandas Dataframe 多索引

转载 作者:太空宇宙 更新时间:2023-11-03 21:36:22 24 4
gpt4 key购买 nike

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

顶部是聚合特征,前 3 个是必需的,其余的根据是否针对该特征聚合数据而稀疏。第一个省略号之后是当天的一些汇总特征,第二个省略号之后是用于聚合的时间序列数据。本例中大约有 3800 个预先计算的聚合分组。

我应该尝试将聚合特征放入多索引中吗?

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 而不是字符串(不要忘记写 之前将numpy导入为np)。然后,您将能够使用 pd.isna(dft) 检查 Dataframe 中是否有 NaN 或 dft.dropna() 来保留完整的完成行。

关于python - Pandas Dataframe 多索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53227509/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com