gpt4 book ai didi

python - 组合数据框列表

转载 作者:太空宇宙 更新时间:2023-11-04 01:45:21 25 4
gpt4 key购买 nike

dfs_list 是一个巨大的数据帧列表。例如,这是列表中的三个数据框:

[2501 rows x 2 columns],       ABCD TEST  ABCD TRIAL
Time
0.000 NaN 1.048793
0.002 NaN 1.048793
0.004 NaN 1.017976
0.006 NaN 1.059065
0.008 NaN 1.038521
... ... ...
4.992 NaN 0.997432
4.994 NaN 1.007704
4.996 NaN 1.007704
4.998 NaN 0.987160
5.000 NaN 0.001027

[2501 rows x 2 columns], ABC TEST ABC TRIAL
Time
0.000 0.73632 1.039654
0.002 0.76128 1.021422
0.004 0.82368 0.984959
0.006 0.74880 1.021422
0.008 0.71136 1.048769
... ... ...
4.992 0.72384 1.012306
4.994 0.71136 1.030538
4.996 0.76128 0.984959
4.998 0.69888 1.021422
5.000 0.03744 -0.008660

[2501 rows x 2 columns]]
[ ABDCE TEST ABCDE TRIAL
Time
0.000 NaN 1.065354
0.002 NaN 1.065354
0.004 NaN 1.048597
0.006 NaN 1.048597
0.008 NaN 1.065354
... ... ...
4.992 NaN 0.989946
4.994 NaN 1.006703
4.996 NaN 1.006703
4.998 NaN 1.006703
5.000 NaN 0.001257

我想合并数据帧列表以获得如下输出:

                ABCD TEST     ABCD TRIAL    ABC TEST    ABC TRIAL   ABDCE TEST   ABCDE TRIAL

Time
0.000 NaN 1.048793 0.73632 1.039654 NaN 1.065354
0.002 NaN 1.048793 0.76128 1.021422 NaN 1.065354
0.004 NaN 1.017976 0.82368 0.984959 NaN 1.048597
0.006 NaN 1.059065 0.74880 1.021422 NaN 1.048597
0.008 NaN 1.038521 0.71136 1.048769 NaN 1.065354
... ... ... ... ... ... ...
4.992 NaN 0.997432 0.72384 1.012306 NaN 0.989946
4.994 NaN 1.007704 0.71136 1.030538 NaN 1.006703
4.996 NaN 1.007704 0.76128 0.984959 NaN 1.006703
4.998 NaN 0.987160 0.69888 1.021422 NaN 1.006703
5.000 NaN 0.001027 0.03744 -0.008660 NaN 0.001257

所有数据帧都是 2501 行 x 2 列,并以“时间”作为索引。所有数据帧的所有“时间”索引值都完全相同。

当我这样做时:

pd.concat(dfs_list, axis=1)

输出是一个包含大量 Nan 值的数据框。

我得到的最接近的是使用这段代码:

reduce(lambda left, right: pd.merge(left, right, left_index=True, right_index=True), dfs_list)

这正确地组合了 dfs_list 中的所有数据帧,但只输出第一行(时间 = 0.0)。

如果我使用 ignore_index 数据框结果是:

       0         1    2         3        4    ...       383      384       385  386       387
Time ...
0.000 NaN 1.065354 NaN 1.048793 0.73632 ... 1.010290 0.64896 0.803985 NaN 0.665822
0.002 NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN
0.002 NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN
0.002 NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN
0.002 NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN
... ... ... ... ... ... ... ... ... ... ... ...
4.998 NaN NaN NaN NaN NaN ... NaN 0.66144 0.934120 NaN NaN
4.998 NaN 1.006703 NaN 0.987160 0.69888 ... 0.991581 NaN NaN NaN 1.037600
4.998 NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN
5.000 NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN
5.000 NaN 0.001257 NaN 0.001027 0.03744 ... -0.009355 0.00000 0.006913 NaN 0.234896

编辑:如果我一起删除时间列并重置索引怎么办?我真的不关心时间栏..只是测试和试用栏。然后 df_list 看起来像这样:

[2501 rows x 2 columns],      ABCD TEST  ABCD TRIAL
4893 NaN 1.048793
4894 NaN 1.048793
4895 NaN 1.017976
4896 NaN 1.059065
4897 NaN 1.038521
... ... ...
7389 NaN 0.997432
7390 NaN 1.007704
7391 NaN 1.007704
7392 NaN 0.987160
7393 NaN 0.001027

[2501 rows x 2 columns], ABC TEST ABC TRIAL
4007 0.73632 1.039654
4008 0.76128 1.021422
4009 0.82368 0.984959
4010 0.74880 1.021422
4011 0.71136 1.048769
... ... ...
6503 0.72384 1.012306
6504 0.71136 1.030538
6505 0.76128 0.984959
6506 0.69888 1.021422
6507 0.03744 -0.008660

[2501 rows x 2 columns]]
[ ABCDE TEST ABCDE TRIAL
4862 NaN 1.065354
4863 NaN 1.065354
4864 NaN 1.048597
4865 NaN 1.048597
4866 NaN 1.065354
... ... ...
7358 NaN 0.989946
7359 NaN 1.006703
7360 NaN 1.006703
7361 NaN 1.006703
7362 NaN 0.001257

但是,如果我尝试 pd.concat(dfs_list, axis=1, ignore_index=True),输出仍然是:

      0    1    2    3    4    ...  383  384  385  386       387
12 NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN
13 NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN
14 NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN
15 NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN
16 NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN
... ... ... ... ... ... ... ... ... ... ... ...
7491 NaN NaN NaN NaN NaN ... NaN NaN NaN NaN 0.970004
7492 NaN NaN NaN NaN NaN ... NaN NaN NaN NaN 0.978454
7493 NaN NaN NaN NaN NaN ... NaN NaN NaN NaN 1.020701
7494 NaN NaN NaN NaN NaN ... NaN NaN NaN NaN 1.037600
7495 NaN NaN NaN NaN NaN ... NaN NaN NaN NaN 0.234896

最佳答案

让我们使用join .

df_list[0].join(df_list[1:])

加入注意事项

Join columns with other DataFrame either on index or on a key column. Efficiently join multiple DataFrame objects by index at once by passing a list.

other : DataFrame, Series, or list of DataFrame

关于python - 组合数据框列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59185176/

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