kuyoro 2022-03-24 15:37 采纳率: 92.7%
浏览 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 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探