weixin_40473525
weixin_40473525
采纳率100%
2019-08-01 17:49

dataframe将某列数据变为column索引

已采纳

有这样一个dataframe
图片说明
能够发现是多只不同code股票在固定几个日期取出来的值列表,现在,我想把表格的构造改变一下,改编后的样子是:
code /date 2017-09-30 2017-12-31 2018-03-31 .......
000032 ssss sssss ssss
000063
000070
.....
第三列total_owner_equity直接填充到表里就好了,请问怎么实现?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

1条回答

  • qq_42725942 Edward_LA 2年前

    您好,我建立了一个与你类似的DataFrame,大致的与您对应一下,希望能够帮到您。为了对应您后续补充的问题,其中2019-03-01和2018-06-30是各有一个股票无数据的。

    我的数据
    图片说明

    代码部分

    # Import
    import pandas as pd
    
    # Specify Info
    data = pd.read_csv('data.csv')
    data = data.sort_values(by=['report_date','code'])
    col=['code']
    col.extend(data.report_date.unique().tolist())
    result = pd.DataFrame(columns=col)
    
    # Major
    result['code']=data.code.unique().tolist()
    for i in data.report_date.unique().tolist():
        tmp = data.loc[data['report_date']==i]
        list=[]
        for j in data.code.unique().tolist():
            a=tmp.loc[tmp['code']==j]['total_owner_equities'].to_list()
            if len(a)==0:
                a.append('NA')
            list.extend(a)
        result[i]=list
    result.to_csv('test.csv')
    

    结果部分
    图片说明

    某只股票某个日期若无数据会补充为‘NA’,后续如果不想要dropna即可

    刚好也看到了您在另一个问题中提到的仅保留数值的问题,这是我保存后的结果。

    图片说明

    点赞 评论 复制链接分享