为了账号安全,请及时绑定邮箱和手机立即绑定

将索引值移动到 pandas 数据框中的列名称中

将索引值移动到 pandas 数据框中的列名称中

宝慕林4294392 2023-10-25 10:58:45
我正在尝试重塑多索引数据框,以便将索引第二级的值合并到新数据框的列名称中。在下面的数据框中,我想将 A 和 B 从“源”移动到列中,以便拥有 s1_A、s1_B、s2_A、...、s3_B。我尝试显式创建新数据框的结构,并使用嵌套的 for 循环填充它以重新分配值,但速度非常慢。我已经尝试了 pandas API 中的许多功能,但运气不佳。任何帮助将非常感激。我正在尝试为 django 创建一个可以运行的自定义命令python manage.py cert_transparency,我已经快完成了,但遇到了一些麻烦。这个的目的是在后台创建一个 24/7 运行的命令,我只是在 docker 容器中运行它。我收到此错误消息certificate_update: 0cert [00:00, ?cert/s]Traceback (most recent call last):  File "manage.py", line 15, in <module>    execute_from_command_line(sys.argv)  File "/usr/local/lib/python3.7/site-packages/django/core/management/__init__.py", line 401, in execute_from_command_line    utility.execute()  File "/usr/local/lib/python3.7/site-packages/django/core/management/__init__.py", line 395, in execute    self.fetch_command(subcommand).run_from_argv(self.argv)  File "/usr/local/lib/python3.7/site-packages/django/core/management/base.py", line 330, in run_from_argv    self.execute(*args, **cmd_options)  File "/usr/local/lib/python3.7/site-packages/django/core/management/base.py", line 371, in execute    output = self.handle(*args, **options)  File "/src/scraper/management/commands/cert_transparency.py", line 184, in handle    certstream.listen_for_events(callback, url=certstream_url)NameError: name 'callback' is not defined基本上我想做的只是将此脚本作为 django 中的自定义管理命令导入。
查看完整描述

2 回答

?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

df = df.unstack(level=1)

df.columns = ['_'.join(col).strip() for col in df.columns.values]

print(df)

印刷:


                 s1_A           s1_B  s2_A  s2_B           s3_A           s3_B

sample                                                                        

1       4.665045e-310  6.904071e-310   0.0   0.0  6.903913e-310  2.121996e-314

2       6.904071e-310   0.000000e+00   0.0   0.0  3.458460e-323   0.000000e+00

3        0.000000e+00   0.000000e+00   0.0   0.0   0.000000e+00   0.000000e+00


查看完整回答
反对 回复 2023-10-25
?
HUH函数

TA贡献1836条经验 获得超4个赞

Unstack到一个新的数据帧中,并使用以下方法折叠结果 frmae 的多级索引f string


df1= df.unstack()

df1.columns = df1.columns.map('{0[0]}_{0[1]}'.format)




        s1_A  s1_B  s2_A  s2_B  s3_A  s3_B

sample                                    

1        1.2   1.2   3.4   3.4   5.6   5.6

2        1.2   1.2   3.4   3.4   5.6   5.6

3        1.2   1.2   3.4   3.4   5.6   5.6


查看完整回答
反对 回复 2023-10-25
  • 2 回答
  • 0 关注
  • 115 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信