我尝试创建一个查询,例如
traffic.groupby([round(traffic.a),traffic.r])[["sn","sbr"]].nunique().loc[a==2,:]
最后一个loc语句不起作用(a==2
):“name 'a' is not defined.
如何过滤此类匿名数据框中的行?
** 更新 **
这是一个例子
a=[1,2,2,3]
r=[2,2,3,5]
sn=[1,1,2,2]
sbr=[2,2,2,3]
traffic=pd.DataFrame([a,r,sn,sbr],columns=["a","r","sn","sbr"])
traffic.groupby([round(traffic.a),traffic.r])[["sn","sbr"]].nunique().loc[a==2,:]
流量如下所示:
a r sn sbr
0 1 2 2 3
1 2 2 3 5
2 1 1 2 2
3 2 2 2 3
答案 0 :(得分:0)
我希望我能看到你的数据框结构!但是我通常查询没有名称的行的方式(我假设当您说“匿名”时,您的数据集没有标题)是使用 iloc
。
例如,如果我想返回前两行,我会说:
dataframe.iloc[[0, 1]]
或者如果我需要返回特定列的前两行,假设列号为 4
dataframe.iloc[[0, 1], 3]
我希望这会有所帮助!
答案 1 :(得分:0)
这可能会有所帮助:
import pandas as pd
a = [1,2,2,3]
r = [2,2,3,5]
sn = [1,1,2,2]
sbr = [2,2,2,3]
traffic = pd.DataFrame([a,r,sn,sbr],columns=["a","r","sn","sbr"])
traffic.groupby([round(traffic.a),traffic.r])[["sn","sbr"]].nunique().T[2].T
输出为:
sn sbr
r
2 2 2