我是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()
怎么样?感谢
答案 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