向数据框添加列

时间:2019-01-17 19:05:32

标签: pandas

我有以下内容:

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 namescountbyid = pd.DataFrame(data = count, columns = ['customer', 'department'])时,没有数据返回,只有列名:

customer department

2 个答案:

答案 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'})