如何在整个数据框架中扩展列中的变量标签

2024-06-17 12:33:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我有数据,我想让性别和年龄组扩展到整个数据集。以下是当前数据的外观,以及理想情况下的外观:

电流:

gender  variable   age  
1       
    18-24 variabl1  0.6
          variable2 0.3
    25-39 variable1 0.1
          variable2 0.3
    40-50 variable1 0.1
          variable2 0.30
2       
    18-24 variabl1  0.6
          variable2 0.3
    25-39 variable1 0.1
          variable2 0.3
    40-50 variable1 0.1
          variable2 0.30

注意:我不想更改数据帧的物理结构(即重新排列列和行)

我在google上搜索了不少,但不幸的是,我没有找到任何有用的东西

为了达到我目前的状态,我只需完成一个雄性和雌性的替换,然后是一个groupby:

data['gender'].replace(['Male', 'Female'],[1,2], inplace=True)
df = data.groupby(['gender', 'age'])["variable"].value_counts(normalize=True)

理想:

   gender   variable   age  
    1       
    1   18-24 variabl1  0.6
    1   18-24 variable2 0.3
    1   25-39 variable1 0.1
    1   25-39 variable2 0.3
    1   40-50 variable1 0.1
    1   40-50 variable2 0.30
    2       
    2   18-24 variabl1  0.6
    2   18-24 variable2 0.3
    2   25-39 variable1 0.1
    2   25-39 variable2 0.3
    2   40-50 variable1 0.1
    2   40-50 variable2 0.30

Tags: 数据trueagedata情况gendervariable外观
1条回答
网友
1楼 · 发布于 2024-06-17 12:33:51

我相信这会奏效的。问题是在重置索引时存在名称冲突。您需要将number的列重命名为其他列。我把它改名为“value”

df.rename('value').reset_index()

    gender      age talent_prompted__Johnny     value
0        1  "18-24"              response 1  0.621622
1        1  "18-24"           I do not know  0.216216
2        1  "18-24"              response 5  0.081081
3        1  "18-24"              response 2  0.027027
4        1  "18-24"              response 4  0.027027
..     ...      ...                     ...       ...
74       2  "50-54"              response 2  0.027027
75       2  "50-54"              response 5  0.027027
76       2  "55-59"              response 1  0.694444
77       2  "55-59"           I do not know  0.194444
78       2  "55-59"              response 7  0.111111

[79 rows x 4 columns]

相关问题 更多 >