Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 两个分类变量的笛卡尔积_Python_Python 3.x_Pandas_Matplotlib - Fatal编程技术网

Python 两个分类变量的笛卡尔积

Python 两个分类变量的笛卡尔积,python,python-3.x,pandas,matplotlib,Python,Python 3.x,Pandas,Matplotlib,让一个数据帧在其他两个分类变量中,一个有儿童-年轻-成熟-老年类,另一个有男性-女性类 我怎么能有系统地建立一个新的专栏“Sex\u Age”,其中包括男童、女童、男童、女童、男童、女童、男童、女童、男童、女童 在两种情况下: 我不希望这个新的分类变量真的添加到我的数据帧中,但我只想使用它的概念,比如说,绘制有八个点的抖动图 我想把这个新的分类变量添加到我的数据框中 在案例1中:我想要抖动图的'HairLength'由8束组成,对应于8个案例:男性儿童,女性成熟我对新专栏不感兴趣 案例2:我

让一个数据帧在其他两个分类变量中,一个有
儿童-年轻-成熟-老年
类,另一个有
男性-女性

我怎么能有系统地建立一个新的专栏
“Sex\u Age”
,其中包括
男童、女童、男童、女童、男童、女童、男童、女童、男童、女童

在两种情况下:

  • 我不希望这个新的分类变量真的添加到我的数据帧中,但我只想使用它的概念,比如说,绘制有八个点的抖动图

  • 我想把这个新的分类变量添加到我的数据框中

  • 在案例1中:我想要
    抖动图
    'HairLength'
    由8束组成,对应于8个案例:
    男性儿童,女性成熟我对新专栏不感兴趣


    案例2:我感兴趣的是在我的
    日期框中添加一个
    'Sex\u Age'
    列,该列包含真实数据,如
    男童等。

    我的示例数据框是:

    df = pd.DataFrame({'A':['male', 'female', 'male'], 'B':['one', 'two', 'three']})
    
    因此,您可以使用函数get_dummies from pandas:

    pd.get_dummies(df, columns=['A', 'B'])
    
    输出将是:

    
        A_female    A_male  B_one   B_three B_two
    0          0         1      1         0     0
    1          1         0      0         0     1
    2          0         1      0         1     0
    
    你可以用它来画图,比如(但它不是抖动图):

    或通过以下方式连接到DataFrameWriter:

    df = df.join(pd.get_dummies(df, columns=['A', 'B']))
    

    请分享一份。另外,请您澄清:
    我不希望这个新的分类变量真的添加到我的数据框中
    ,但是
    我想将这个新的分类变量添加到我的数据框中
    我按照您所说的@yatu做了
    pd.get_dummies(df, columns=['A', 'B']).plot(kind='bar')
    
    df = df.join(pd.get_dummies(df, columns=['A', 'B']))