如何解决无法为连接的 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 举报,一经查实,本站将立刻删除。