Python 如何使用布尔值将一维数据帧扩展为二维数据帧?

Python 如何使用布尔值将一维数据帧扩展为二维数据帧?,python,pandas,Python,Pandas,如何将df转换为具有如下布尔值的二维数据帧 >>> df = pd.DataFrame(data = ['a','b','b','c'],index=['day1','day1','day2','day2'],columns=['name']) name day1 a day1 b day2 b day2 c 1) (较慢的方法)-用于计算计数频率表: a b c day1 1 1 0 day2 0 1 1 2

如何将df转换为具有如下布尔值的二维数据帧

>>> df = pd.DataFrame(data = ['a','b','b','c'],index=['day1','day1','day2','day2'],columns=['name'])

     name
day1    a
day1    b
day2    b
day2    c
1) (较慢的方法)-用于计算计数频率表:

      a  b  c
day1  1  1  0
day2  0  1  1
2) (更快的方法)-在索引轴上执行
Groupby
,并通过用0填充缺少的值来取相应的+
unstack

pd.crosstab(df.index, df['name'], rownames=[None]).rename_axis(None, 1)
两种情况下的结果输出:

df.groupby(level=0)['name'].value_counts().unstack(fill_value=0).rename_axis(None, 1)