微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法为连接的 Pandas 系列提供列名

如何解决无法为连接的 Pandas 系列提供列名

从pandas 数据帧中,我使用pandas 内置函数计算所有变量的mean()、sd() 和max()。我拿回了三个熊猫系列。

import pandas as pd

df_FALKO_R_scores_mean = df_FALKO_R_scores_only.mean()

df_FALKO_R_scores_sd = df_FALKO_R_scores_only.std()

df_FALKO_R_scores_max = df_FALKO_R_scores_only.max()

然后我将三个系列连接起来以获得每个变量的均值、标准差和最大值的输出

问题是,正如你在下面看到的,虽然我在 concat() 函数添加了“名称”,但变量的标签被命名为 0、1 和 2。这是不可读的,特别是如果我想绘图那些数字。我怎样才能获得带有列标签 ['mean','sd','max'] 的 Pandas 系列?我也试过“ignore_index”真假。

df_FALKO_R_scores_mean_sd_max = pd.concat([df_FALKO_R_scores_mean,df_FALKO_R_scores_sd,df_FALKO_R_scores_max],names=['mean','max'],axis=1,ignore_index=True)

print(df_FALKO_R_scores_mean_sd_max)

输出

                     0         1    2
R_fd_s_01a_s  1.026490  0.631897  2.0
R_fd_e_01b_s  0.794702  0.802645  2.0
R_fd_e_01c_s  1.039735  1.124757  4.0
R_fd_p_02a_s  1.390728  0.848320  3.0
R_fd_p_02b_s  0.880795  0.552897  2.0
R_fd_p_03_s   1.132450  1.004493  3.0
R_fd_s_04_s   0.834437  0.769679  2.0
R_fd_e_05_s   0.403974  0.694539  2.0
R_fd_p_06a_s  1.105960  0.644488  2.0
R_fd_e_06b_s  1.337748  0.979030  3.0
R_fd_e_07_s   1.192053  1.320178  4.0
R_fd_e_08a_s  0.748344  0.741337  2.0
R_fd_e_08b_s  0.529801  0.737635  2.0
R_fd_p_09a_s  1.688742  1.312430  4.0
R_fd_p_09b_s  0.701987  0.839005  3.0
R_fw_01_s     0.774834  0.731867  2.0
R_fw_02_s     0.761589  0.797568  2.0
R_fw_03_s     0.841060  0.857070  2.0
R_fw_04_s     0.589404  0.675983  2.0
R_fw_05_s     0.403974  0.655020  2.0
R_fw_06_s     0.211921  0.441351  2.0
R_fw_07_s     0.536424  0.789724  2.0
R_fw_08_s     0.927152  0.566855  2.0
R_fw_09a_s    1.317881  0.843571  2.0

感谢您的帮助!

解决方法

为什么不使用 agg() 而不是创建三个不同的计算并连接结果?

df_FALKO_R_scores_only.agg(['mean','std','max'],axis=1)

它将为您提供具有正确列名的结果。

您没有添加任何输入,但我相信在这种情况下它可以工作。

编辑:

如果要使用pd.concat,可以为每个系列命名,例如:

df_FALKO_R_scores_mean.name = 'mean'

或者您可以使用列表命名输出列。

df_FALKO_R_scores_mean_sd_max.columns = ['mean','max']

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。