假设我有这个数据集。 每个变量可以假定值介于1和5之间。这些变量表示相似的对象,所以我想在所有数据集中比较它们
import pandas as pd
df = pd.DataFrame({'dataset': ["ds1", "ds2", "ds3", "ds4", "ds5"],
'var1': [1, 4, 5, 3, 1],
'var2': [2, 1, 1, 2, 5],
'var3': [2, 1, 1, 2, 5]})
df
我想使用.T转换df,并将数据汇总如下:
行:每行代表一个变量(var1到var3) 第1-5列:表示这些变量的值,每个单元格显示该值在所有数据集中出现的总数(var1.value\u计数)
示例:行1表示var1。第1列显示“1”在所有数据集中出现两次,第2列显示2出现0次
预期结果
1 2 3 4 5
var1 2 0 1 1 1
var2 2 2 0 0 1
var3 2 2 0 0 1
也许我需要使用交叉表或透视表?谢谢
将^{} 与^{} 和^{} 一起使用:
或者对于没有使用转置的第一个
value_counts
的所有列,将缺少的值替换为0
,最后将所有值转换为整数:是的,
crosstab
在melt
之后可以正常工作(或者在@jezrael的解决方案中,pivot table
):是的,您可以使用
normalize
参数,并通过行(索引)或列选择是否需要它:相关问题 更多 >
编程相关推荐