我有以下内容:
count = a[(a.type == 'exact') & (a.score == 1.0)].groupby('id').count()['type']
countbyid = pd.DataFrame(data = count)
哪些给了我以下内容:
id type
102116 578
1256 1211
126805 215
31560 12
329401 2310
49923 375
9691 2409
当我尝试从add column names到countbyid = pd.DataFrame(data = count, columns = ['customer', 'department'])
时,没有数据返回,只有列名:
customer department
答案 0 :(得分:3)
使用给定的方法,您将插入已经具有列名称的数据框,并且当您在其中分配列时,没有针对这些列的值被分配,因此您将收到一个空的数据框。
因此有两种方法可以解决此问题-
第一:
countbyid = pd.DataFrame(data = countbyid.values)
countbyid.columns = ['customer', 'department']
第二(如ScottBoston的评论中所述):
countbyid = pd.DataFrame(data= countbyid.values, columns = ['customer', 'department'])
答案 1 :(得分:1)
根据您的代码,我假设a
是一个数据框,您只需要重置索引并重命名列即可。无需再次调用DataFrame构造函数。
a[(a.type == 'exact') & (a.score == 1.0)].groupby('id').type.count().reset_index()\
.rename({'id':'customer', 'type':'department'})