Python 数据帧二进制编码
Python Dataframe Binary Encoding
我有一个如下所示的数据框:
User
Product
1
a
1
b
2
a
2
c
3
b
我希望每个用户有 1 行,产品作为列,如果用户购买或不购买产品,它会给出 1 或 0,我该怎么做?
df.pivot_table(index="User", columns="Product", aggfunc=len).fillna(0)
# Result:
Product a b c
User
1 1.0 1.0 0.0
2 1.0 0.0 1.0
3 0.0 1.0 0.0
您要查找的是“cross tabulation" or simply crosstab. Pandas has pd.crosstab
相同。
pd.crosstab(df['User'], df['Product'])
Product a b c
User
1 1 1 0
2 1 0 1
3 0 1 0
我有一个如下所示的数据框:
User | Product |
---|---|
1 | a |
1 | b |
2 | a |
2 | c |
3 | b |
我希望每个用户有 1 行,产品作为列,如果用户购买或不购买产品,它会给出 1 或 0,我该怎么做?
df.pivot_table(index="User", columns="Product", aggfunc=len).fillna(0)
# Result:
Product a b c
User
1 1.0 1.0 0.0
2 1.0 0.0 1.0
3 0.0 1.0 0.0
您要查找的是“cross tabulation" or simply crosstab. Pandas has pd.crosstab
相同。
pd.crosstab(df['User'], df['Product'])
Product a b c
User
1 1 1 0
2 1 0 1
3 0 1 0