首页 > 解决方案 > Pandas DataFrame:使用 0 和 1 创建类似矩阵

问题描述

我必须用 0 和 1 创建一个类似矩阵的东西。我怎样才能创建这样的东西?在此处输入图像描述

这是我的数据框: 在此处输入图像描述

我想检查 df['luogo'] 是 'sala' 和 df['sala'] 的交点并将其替换为 1。

这是我的尝试:

for head in dataframe.columns:
    for i in dataframe['luogo']:
        if i == head:
            dataframe[head] = 1
        else:
            dataframe[head] = 0

对不起意大利数据框。

标签: python-3.xpandasdataframejupyter-notebookjupyter

解决方案


您可能正在寻找pandas.get_dummies(..)[pandas-doc]。对于给定的数据框df

>>> df
    luogo
0    sala
1  scuola
2  teatro
3    sala

我们得到:

>>> pd.get_dummies(df['luogo'])
   sala  scuola  teatro
0     1       0       0
1     0       1       0
2     0       0       1
3     1       0       0

因此,您可以将其与您的原始数据框加入:

>>> df.join(pd.get_dummies(df['luogo']))
    luogo  sala  scuola  teatro
0    sala     1       0       0
1  scuola     0       1       0
2  teatro     0       0       1
3    sala     1       0       0

因此,这构建了原始数据帧中值的单热编码”[wiki]


推荐阅读