pandas dataframe group by和agg

时间:2017-09-14 22:37:50

标签: pandas dataframe ipython

我是ipython的新手,我正在尝试使用数据帧分组。我有一个如下的数据框

objkey

我想实现以下目标:

1)按B分组但创建多级列而不是分组为B1和B2作为索引的行,B1和B2基本上是计数

2)A列和C列是使用类似{' C':'计数'],' A':[' ;总和']}

import MySQLdb

db = MySQLdb.connect(host='', user='', passwd='', db='')
cursor = db.cursor

sql = "INSERT INTO newtable (%s, %s, %s, %s) SELECT %s, %s, %s, %s FROM oldtable
WHERE %s;" % ((name, desig, data, num), name, desig, data, num, obj = repr(objkey))
cursor.execute(sql)

db.commit()
db.close()
怎么样?感谢

1 个答案:

答案 0 :(得分:1)

您正在对每列执行单独的操作。您可以通过聚合A和C然后分别取B的值计数然后将数据组合在一起来破解这一点。

ac = df_test.agg({'A':'sum', 'C':'count'}) 
b = df_test['B'].value_counts()
pd.concat([ac, b]).sort_index().to_frame().T
   A  B1  B2  C
0  6   2   2  3