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的数值。
修改了一下代码,看看这个是不是你要的
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[['技术']])
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[['技术']])
题主是这个意思吗?
索引里面传入元组的格式, 类似于这样, 或者 用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[('技术','北京')])
如果是对索引进行排序, 试试这样
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[('技术','北京')])
您好,我是问答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632