我希望能够在Pandas DataFrame中计算数据的描述性统计数据,但我只关心重复的条目。例如,假设我有一个由以下人员创建的DataFrame:
import pandas as pd
data={'key1':[1,2,3,1,2,3,2,2],'key2':[2,2,1,2,2,4,2,2],'data':[5,6,2,6,1,6,2,8]}
frame=pd.DataFrame(data,columns=['key1','key2','data'])
print frame
key1 key2 data
0 1 2 5
1 2 2 6
2 3 1 2
3 1 2 6
4 2 2 1
5 3 4 6
6 2 2 2
7 2 2 8
如您所见,第0、1、3、4、6和7行都是重复的(使用'key1‘和'key2’。但是,如果我像这样索引这个DataFrame:
frame[frame.duplicated(['key1','key2'])]
我得到了
key1 key2 data
3 1 2 6
4 2 2 1
6 2 2 2
7 2 2 8
(即,第1行和第2行不显示,因为复制的方法没有将它们索引为True )。
这是我的第一个问题。我的第二个问题是如何从这些信息中提取描述性统计数据。暂时忘记丢失的重复项,假设我想计算重复项的.min()和.max() (这样我就可以得到一个范围)。我可以对groupby对象使用groupby和这些方法,如下所示:
a.groupby(['key1','key2']).min()
这给了我们
key1 key2 data
key1 key2
1 2 1 2 6
2 2 2 2 1
我想要的数据显然就在这里,但是提取它的最佳方法是什么呢?如何索引结果对象以获得我想要的内容(即key1、key2、数据信息)?
发布于 2015-10-28 08:58:58
要获得Pandas版本为0.17的所有重复条目的列表,只需在duplicated函数中设置'keep = False‘即可。
frame[frame.duplicated(['key1','key2'],keep=False)]
key1 key2 data
0 1 2 5
1 2 2 6
3 1 2 6
4 2 2 1
6 2 2 2
7 2 2 8
https://stackoverflow.com/questions/26244309
复制相似问题