2024-10-16 20:52:49 发布
网友
考虑到我有一个具有以下结构的数据帧:
Symbol CS 0 A1 MSI 1 A2 MSI 2 A3 GS 3 A2 EBV 4 A2 CIN 5 A1 GS 6 A2 MSI ...
我想要一个数据帧,它将列CS分类为头,列符号作为索引。CS将是每种类型的值。例如,上述数据帧的预期输出为:
解决这一特殊案件的最佳有效方法是什么?在
您可以使用crosstab
crosstab
pd.crosstab(df.Symbol,df.CS) Out[862]: CS CIN EBV GS MSI Symbol A1 0 0 1 1 A2 1 1 0 2 A3 0 0 1 0
一种方法是使用pd.value_counts,后跟pd.pivot_table。在
pd.value_counts
pd.pivot_table
编辑:但实际上您应该使用@Wen's solution。在
counts = df.groupby('Symbol')['CS'].apply(pd.value_counts).reset_index() res = counts.pivot_table(index='Symbol', columns='level_1', values='CS', fill_value=0, aggfunc=lambda x: x) print(res) # level_1 CIN EBV GS MSI # Symbol # A1 0 0 1 1 # A2 1 1 0 2 # A3 0 0 1 0
您可以使用
crosstab
一种方法是使用
pd.value_counts
,后跟pd.pivot_table
。在编辑:但实际上您应该使用@Wen's solution。在
相关问题 更多 >
编程相关推荐