qq_45971013
2021-03-27 12:12
采纳率: 71.4%
浏览 74

关于python中pandas索引取值问题

Order = pd.read_csv('Order.csv', header=None, names=['date', 'time', 'city', 'id', 'zl', 'xse', 'sl', 'zk', 'lr'])
sorted = Order.groupby(['zl','city']).agg(sum=('xse','sum')).sort_values(by='sum')
df =sorted.sort_values(['zl','city'])
print(df)

这种代码输出:

他的index索引:

 

 

像这种index有两列,我应该怎么用pandas来提取 (zl="技术”)   后面xse的数值。

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • CSDN专家-ProfSnail 2021-03-27 15:46
    已采纳

    修改了一下代码,看看这个是不是你要的

    Order = pd.read_csv('Order.csv', header=None, names=['date', 'time', 'city', 'id', 'zl', 'xse', 'sl', 'zk', 'lr'])
    sorted = Order.groupby(['zl','city']).agg(sum=('xse','sum')).sort_values(by='sum')
    df =sorted.sort_values(['zl','city'])
    print(df.loc[['技术']])
    2 打赏 评论
  • CSDN专家-ProfSnail 2021-03-27 14:18
    Order = pd.read_csv('Order.csv', header=None, names=['date', 'time', 'city', 'id', 'zl', 'xse', 'sl', 'zk', 'lr'])
    sorted = Order.groupby(['zl','city']).agg(sum=('xse','sum')).sort_values(by='sum')
    df =sorted.sort_values(['zl','city'])
    print(df.loc[['技术']])

    题主是这个意思吗? 

    1 打赏 评论
  • 索引里面传入元组的格式, 类似于这样, 或者 用reset_index() 将索引变成列, 然后按列的格式再筛选

    import pandas as pd
    import numpy as np
    
    data = pd.read_excel('c:/users/yyz/desktop/123.xlsx')
    
    result =data.groupby(['类型','地名'])['值'].sum()
    
    print(result[('技术',)])
    print(result[('技术','北京')])
    
    1 打赏 评论
  • 如果是对索引进行排序, 试试这样

    import pandas as pd
    import numpy as np
     
    data = pd.read_excel('c:/users/yyz/desktop/123.xlsx')
     
    result =data.groupby(['类型','地名'])['值'].sum().sort_index(level=0,ascending=False)  # 因为是多级索引 也可以level =[0,1] 
     
    print(result[('技术',)])
    print(result[('技术','北京')])
    
    1 打赏 评论
  • 有问必答小助手 2021-03-27 15:12

    您好,我是问答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~

    如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

    ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632

    打赏 评论

相关推荐 更多相似问题