我需要选择行数大于mac列中项目的计数(即1)的行。 然后用时间戳的最小值和最大值创建一个DataFrame。在python中选择带有熊猫数据框的布尔数组的行
a=np.array([['A',1],['A',2],['A',3],['B',2],['C',1],['C',2]])
df=pd.DataFrame(a,columns=['mac','timestamp'])
df
Out[103]:
mac timestamp
0 A 1
1 A 2
2 A 3
3 B 2
4 C 1
5 C 2
count_macs= df.groupby(['mac'])['mac'].count()>1
count_macs
Out[105]:
mac
A True
B False
C True
Name: mac, dtype: bool
我想获得:
mac ts1 ts2
A 1 3
C 1 2
但不知道如何正确适用的.loc:
df.loc[count_macs]
IndexingError: Unalignable boolean Series key provided
先生你爱上拉姆达? :) :) – Dark
否( - :我在一行中写了这个,我想把df.groupby('mac')'传递给'lambda'以便使用两次,但是计算一次。 ,我想重新命名内联列,我决定使用将迭代器传递给lambda的概念......嗯,我最终得到了上面的答案 – piRSquared
f是完美的,我通过一个groupby和它使用了两次,非常简单,非常优雅,'h'是为了好玩,可以像你的字典'd'一样容易。 – piRSquared