首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >熊猫-need将数据转换成不同的形状

熊猫-need将数据转换成不同的形状
EN

Stack Overflow用户
提问于 2022-07-21 06:22:26
回答 1查看 78关注 0票数 1

在此输入代码,您是否可以帮助解决一项任务。我有数据帧

代码语言:javascript
复制
data_dict = {'Number': {0: 1, 1: 2, 2: 3}, 'mw link': {0: 'SAM3703_2SAM3944 2', 1: 'SAM3720_2SAM4115 2', 2: 'SAM3729_2SAM4121_ 2'}, 'site_a': {0: 'SAM3703', 1: 'SAM3720', 2: 'SAM3729'}, 'name_a': {0: 'Chelak', 1: 'KattakurganATC', 2: 'Payariq'}, 'site_b': {0: 'SAM3944', 1: 'SAM4115', 2: 'SAM4121'}, 'name_b': {0: 'Turkibolo', 1: 'Kattagurgon', 2: 'Payariq2'}, 'distance km': {0: 3.618, 1: 7.507, 2: 9.478}, 'manufacture': {0: 'ZTE NR 8150/8250', 1: 'ZTE NR 8150/8250', 2: 'ZTE NR 8150/8250'}}



Number    mw link               site_a     name_a         site_b    name_b                      distance km    manufacture
1         SAM3703_2SAM3944_2    SAM3703    Chelak         SAM3944  Turkibolo                    3.618          ZTE NR 8150/8250
2         SAM3720_2SAM4115_2    SAM3720    KattakurganATC SAM4115  Kattaqurgon                  7.507          ZTE NR 8150/8250
3        SAM3729_2SAM4121_2     SAM3729    Payariq        SAM4121   Payariq2                     9.478          ZTE NR 8150/8250

第一次数据

https://i.stack.imgur.com/tPugN.png

需要像这样改变所需输出

代码语言:javascript
复制
Number     mw link                                      name     distance km     manufacture
1         SAM3703_2SAM3944_2     site_a     SAM3703     Chelak      3.618     ZTE NR 8150/8250
                                 site_b     SAM3944     Turkibolo
2     SAM3720_2SAM4115_2         site_a     SAM3720     KattakurganATC 7.507  ZTE NR 8150/8250
                                 site_b     SAM4115     Kattaqurgon 
3     SAM3729_2SAM4121_2         site_a     SAM3729     Payariq     9.478     ZTE NR 8150/8250
                                 site_b     SAM4121     Payariq2
EN

回答 1

Stack Overflow用户

发布于 2022-07-21 07:15:31

wide_to_longDataFrame.reset_indexrename结合使用

代码语言:javascript
复制
df = (pd.wide_to_long(df, 
                      stubnames=['name','site'], 
                      i=['Number','mw link','manufacture','distance km'], 
                      j='i', 
                      sep='_',
                      suffix=r'\w+')
      .reset_index(['manufacture','distance km'])
      .rename(lambda x: f'site_{x}', level=2)
      )
print (df)
                                        manufacture  distance km  \
Number mw link             i                                       
1      SAM3703_2SAM3944 2  site_a  ZTE NR 8150/8250        3.618   
                           site_b  ZTE NR 8150/8250        3.618   
2      SAM3720_2SAM4115 2  site_a  ZTE NR 8150/8250        7.507   
                           site_b  ZTE NR 8150/8250        7.507   
3      SAM3729_2SAM4121_ 2 site_a  ZTE NR 8150/8250        9.478   
                           site_b  ZTE NR 8150/8250        9.478   

                                                       name     site  
Number mw link             i                                          
1      SAM3703_2SAM3944 2  site_a                    Chelak  SAM3703  
                           site_b                 Turkibolo  SAM3944  
2      SAM3720_2SAM4115 2  site_a            KattakurganATC  SAM3720  
                           site_b  Kattagurgon Sement Zavod  SAM4115  
3      SAM3729_2SAM4121_ 2 site_a                   Payariq  SAM3729  
                           site_b        Payariq Dehgonobod  SAM4121  
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73061553

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档