Python 如何创建一个数据透视表,将列条目数据透视到列标题,并为空条目创建一个新列?
我在DataFrame中有一个表格取自excel:Python 如何创建一个数据透视表,将列条目数据透视到列标题,并为空条目创建一个新列?,python,pandas,Python,Pandas,我在DataFrame中有一个表格取自excel: col A ColB colC colD 123451 a w p 123452 b x q 123453 c y r 123454 a x 123454 a w p 我希望使用pandas.pivot_表实现如下功能: colC p q r "unassigned" "total
col A ColB colC colD
123451 a w p
123452 b x q
123453 c y r
123454 a x
123454 a w p
我希望使用pandas.pivot_表实现如下功能:
colC p q r "unassigned" "total"
w 2 0 0 0 2
x 0 1 0 1 2
y 0 0 1 0 1
您可以对第一列使用,然后通过检查缺少的值,并对count bysum
和total by进行聚合,最后一次连接到一起的方式是:
您可以将所有的
None
替换为'unassigned'
。然后使用获取各自的计数。使用合适的轴进行总计数
下面是执行此操作的代码
df1 = df[['colC', 'colD']].fillna('unassigned')
df1 = pd.crosstab(df1.colD, df1.colD)
df1['total'] = df1.sum(axis=1)
下面是代码的输出
D p q r unassigned total
C
w 2 0 0 0 2
x 0 1 0 1 2
y 0 0 1 0 1
@jezrael,对问题做了一个小小的修改,你能帮忙吗?谢谢@jezrael的帮助!这是完美的。如果其他列也有空白条目,这将失败,这也会改变它们@我们可以使用colC和colD对数据帧进行切片。这可能会有所帮助,我明白了!
D p q r unassigned total
C
w 2 0 0 0 2
x 0 1 0 1 2
y 0 0 1 0 1