我有一个pandas.DataFrame名为name包含字符串的列.我想获得列中不止一次出现的名称列表.我怎么做?
我试过了:
funcs_groups = funcs.groupby(funcs.name)
funcs_groups[(funcs_groups.count().name>1)]
Run Code Online (Sandbox Code Playgroud)
但它并没有过滤出单身人士的名字.
我希望能够在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
Run Code Online (Sandbox Code Playgroud)
如您所见,行0,1,3,4,6和7都是重复的(使用'key1'和'key2'.但是,如果我将这个DataFrame索引如下:
frame[frame.duplicated(['key1','key2'])]
Run Code Online (Sandbox Code Playgroud)
我明白了
key1 key2 data
3 1 2 6
4 2 2 1
6 2 2 2
7 2 2 8
Run Code Online (Sandbox Code Playgroud)
(即,第一行和第二行不会显示,因为它们没有通过重复方法索引为True).
这是我的第一个问题.我的第二个问题涉及如何从这些信息中提取描述性统计数据.暂时忘记丢失的副本,假设我想为重复的条目计算.min()和.max()(这样我就可以得到一个范围).我可以在groupby对象上使用groupby和这些方法,如下所示:
a.groupby(['key1','key2']).min()
Run Code Online (Sandbox Code Playgroud)
这使
key1 key2 data
key1 key2
1 2 1 2 …Run Code Online (Sandbox Code Playgroud)