Python 获取pd.dataFrame的最后一列并将其添加到另一个pd.dataFrame
我有一个Excel文件,如下所示:Python 获取pd.dataFrame的最后一列并将其添加到另一个pd.dataFrame,python,pandas,Python,Pandas,我有一个Excel文件,如下所示: CompanyName High Priority QualityIssue Customer1 Yes User Customer1 Yes User Customer2 No User Customer3 No Equipment Customer1 No
CompanyName High Priority QualityIssue
Customer1 Yes User
Customer1 Yes User
Customer2 No User
Customer3 No Equipment
Customer1 No Neither
Customer3 No User
Customer3 Yes User
Customer3 Yes Equipment
Customer4 No User
我想计算CompanyName
中每个实例在每种类型的QualityIssue
中出现的次数,并按出现次数排序
例如,通过使用此代码:
df.groupby(["CompanyName ", "QualityIssue"]).size().to_frame('Count')
我得到:
Out:
CompanyName QualityIssue Count
Customer2 User 1
Customer1 Neither 1
Customer4 User 1
Customer1 User 2
Customer3 Equipment 2
Customer3 User 2
然后假设我还有另一份上面的副本在记忆中
我想要的是将第二个查询的最后一列添加到第一个查询的末尾(实际上它不是它的副本,只是一个示例):
这里的问题是如果我这样做
df['Count']
它不会只打印该列,它会打印所有内容,就像
print df
因此,我无法找到一种方法,仅获取数据帧的最后一列,以便将其添加到另一列。使用
groupby
和size
df.groupby(['CompanyName', 'QualityIssue']).size()
CompanyName QualityIssue
Customer1 Neither 1
User 2
Customer2 User 1
Customer3 Equipment 2
User 2
Customer4 User 1
dtype: int64
假如我们还记得另一个呢
c1 = df.groupby(['CompanyName', 'QualityIssue']).size()
c2 = c1.copy()
然后使用pd.concat
pd.concat([c1, c2], keys=['Count1', 'Count2']).unstack(0, fill_value=0)
Count1 Count2
CompanyName QualityIssue
Customer1 Neither 1 1
User 2 2
Customer2 User 1 1
Customer3 Equipment 2 2
User 2 2
Customer4 User 1 1
reset_index
如果希望索引返回到数据帧中
pd.concat([c1, c2], keys=['Count1', 'Count2']).unstack(0, fill_value=0) \
.reset_index()
CompanyName QualityIssue Count1 Count2
0 Customer1 Neither 1 1
1 Customer1 User 2 2
2 Customer2 User 1 1
3 Customer3 Equipment 2 2
4 Customer3 User 2 2
5 Customer4 User 1 1
pd.concat([c1, c2], keys=['Count1', 'Count2']).unstack(0, fill_value=0) \
.reset_index()
CompanyName QualityIssue Count1 Count2
0 Customer1 Neither 1 1
1 Customer1 User 2 2
2 Customer2 User 1 1
3 Customer3 Equipment 2 2
4 Customer3 User 2 2
5 Customer4 User 1 1