Pandas 是否有方法将发生次数的唯一值用于列标题?
我有一个数据帧Pandas 是否有方法将发生次数的唯一值用于列标题?,pandas,Pandas,我有一个数据帧df1 Time Category 23:05:07 a 23:11:12 b 23:12:15 a 23:16:12 a 已创建另一个数据帧df2,返回列category中每个唯一值的出现次数,并以5分钟为间隔。使用此代码df2=df1.重新采样('5T').类别.值\u计数() df2 Time Category Category 23:05 a 1 23:10 a 1 23:10 b
df1
Time Category
23:05:07 a
23:11:12 b
23:12:15 a
23:16:12 a
已创建另一个数据帧df2
,返回列category
中每个唯一值的出现次数,并以5分钟为间隔。使用此代码df2=df1.重新采样('5T').类别.值\u计数()
df2
Time Category Category
23:05 a 1
23:10 a 1
23:10 b 1
23:15 a 1
有没有办法将唯一值用作列标题?看起来像:
Time a b
23:05 1 0
23:10 1 1
23:15 1 0
下面的代码应该可以工作。我将您的第二个“分类”列重命名为“CatUnique”
df.groupby(['Time','Category'])['CatUnique'].sum().unstack().fillna(0).reset_index()
值\u计数
返回多索引序列。因此,您只需通过链接unstack
直接处理其结果即可获得所需的输出
由于您能够重新采样
,我假设时间
是您的索引,它已经在日期时间
或时间增量
数据类型中
df_final = df1.resample('5T').Category.value_counts().unstack(fill_value=0)
Out[79]:
Category a b
Time
23:05:07 1 0
23:10:07 1 1
23:15:07 1 0