我有这样一个DF:
id company duration
0 Other Company 5
0 Other Company 19
0 X Company 7
1 Other Company 24
1 Other Company 6
1 X Company 12
2 X Company 9
3 Other Company 30
3 X Company 16
我需要将DF按ID和Company分组,然后对每个DF的持续时间求和。最后,我只需要“X Company”的值。我就是这么做的:
import pandas as pd
jobs = pd.read_csv("data/jobs.csv")
time_in_company = jobs.groupby(['id','company'])['duration'].agg(sum)
得到这个:
id company duration
0 Other Company 24
0 X Company 7
1 Other Company 30
1 X Company 12
2 X Company 9
3 Other Company 30
3 X Company 16
现在我需要删除“其他公司”的所有条目。已经尝试使用时间_公司.drop('Any Company')#Return key错误'Any Company'
试图设置索引('company'),以便尝试其他操作,但它告诉我'Series'对象没有属性'set\u index'
试图在groupby中使用.filter(),但我需要.agg(sum)。(反正也没用。。你知道吗
有人能帮我解释一下这个问题吗?提前谢谢。你知道吗
首先使用pd.query()删除“X Company”行,然后使用groupby删除其余的df,如:
你会得到:
编辑:此外,您可以使用pd.where()、dropna()和pd.pivot_table()的组合:
你会得到:
尽管如此,第一个更快:
每个回路2.03 ms±62.3µs(7次运行的平均值±标准偏差,每个100个回路)
每个回路5.87 ms±23.4µs(7次运行的平均值±标准偏差,每个100个回路)
这有用吗?你知道吗
相关问题 更多 >
编程相关推荐