kuyoro 2022-03-24 15:37 采纳率: 90.5%
浏览 36
已结题

panda怎么同时将行列互相转换?

希望通过pandas同时对数据行列进行转置,使用pandas从数据读取数据方式:

    import pandas as pd
    from sqlalchemy import create_engine
    sql = """
            SELECT ts_code,end_date,revenue,oper_cost 
            FROM income where ts_code ='600002.SH' LIMIT 20
            """
    df = pd.read_sql_query(sql, engine_ts)

从数据库读出来的原始数据格式:

ts_codeend_daterevenueoper_cost
600002.SH20150930539434
600002.SH20150630362291
600002.SH20141231768608
600002.SH20150331161129

想转换成如下格式:

ts_codeITEM20150930201506302014123120150331
600007.SHrevenue539362768161
600007.SHoper_cost434291608129

尝试过转置,但技术不行,以下代码,失败告终。

    df = df.set_index(['revenue', 'oper_cost'])  # 列转行
    df = df.stack()
    df.index = df.index.rename('temp_col1', level=2)
    df.name = 'temp_col2'
    df = df.reset_index()

    df = df.set_index(['temp_col1', 'temp_col2'])  # 行转列
    df = df.unstack("temp_col2")
    df = df.reset_index()
  • 写回答

3条回答 默认 最新

  • CSDN专家-HGJ 2022-03-24 17:32
    关注

    使用pandas的pivot_table就可以了,参考代码如下:

    t='''
    ts_code    end_date    revenue    oper_cost
    600002.SH    20150930    539    434
    600002.SH    20150630    362    291
    600002.SH    20141231    768    608
    600002.SH    20150331    161    129
    '''
    import pandas as pd
    import io
    df=pd.read_table(io.StringIO(t))
    new_df=pd.pivot_table(df,columns='end_date',values=['revenue','oper_cost'])
    new_df=new_df.rename_axis([None], axis=1).reset_index().rename(columns={'index':'ITEM'},index=df['ts_code'][:len(new_df)])
    print(new_df)
    
    

    运行结果:

    F:\2022\pythontest>t8
                    ITEM  20141231  20150331  20150630  20150930
    600002.SH  oper_cost       608       129       291       434
    600002.SH    revenue       768       161       362       539
    
    

    如有帮助,请点击采纳采纳按钮给予支持~~

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 4月2日
  • 已采纳回答 3月25日
  • 创建了问题 3月24日

悬赏问题

  • ¥15 PointNet++的onnx模型只能使用一次
  • ¥20 西南科技大学数字信号处理
  • ¥15 有两个非常“自以为是”烦人的问题急期待大家解决!
  • ¥30 STM32 INMP441无法读取数据
  • ¥15 R语言绘制密度图,一个密度曲线内fill不同颜色如何实现
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧,别用大模型回答,大模型的答案没啥用
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。