Pandas明显算作DataFrame

mar*_*tin 2 python sql count distinct pandas

假设我有一个数据帧的熊猫叫df的柱子ab和我想是的不同值的数量b每每个a.我会做:

distcounts = df.groupby('a')['b'].nunique()
Run Code Online (Sandbox Code Playgroud)

它给出了desidered结果,但它是Series对象而不是另一个DataFrame.我想要一个DataFrame.在常规SQL中,我会这样做:

SELECT a, COUNT(DISTINCT(b)) FROM df
Run Code Online (Sandbox Code Playgroud)

并且无法完全在Pandas中模拟此查询.如何?

jez*_*ael 5

我想你需要reset_index:

distcounts = df.groupby('a')['b'].nunique().reset_index()
Run Code Online (Sandbox Code Playgroud)

样品:

df = pd.DataFrame({'a':[7,8,8],
                   'b':[4,5,6]})

print (df)
   a  b
0  7  4
1  8  5
2  8  6

distcounts = df.groupby('a')['b'].nunique().reset_index()
print (distcounts)
   a  b
0  7  1
1  8  2
Run Code Online (Sandbox Code Playgroud)