Python 3.x 在表中插入新列

Python 3.x 在表中插入新列,python-3.x,pandas,Python 3.x,Pandas,在格式化和分组我的数据帧之后,我创建了以下pivot_表,其中显示了给定凭证的M和F的数量计数: Gender F M Credential AA 105.0 117.0 AU 870.0 249.0 CNA 6309.0 5276.0 接下来我想做的是插入另一列,对于给定的凭证,该列的比率为F:M。例如: Gender

在格式化和分组我的数据帧之后,我创建了以下pivot_表,其中显示了给定凭证的M和F的数量计数:

Gender            F         M
Credential                   
AA            105.0     117.0
AU            870.0     249.0
CNA          6309.0    5276.0
接下来我想做的是插入另一列,对于给定的凭证,该列的比率为F:M。例如:

Gender            F         M    Ratio
Credential                       
AA            105.0     117.0    0.8974
AU            870.0     249.0    3.4939
CNA          6309.0    5276.0    1.1957
我遇到了一个问题,新专栏无法添加,因为它还不是一个类别

TypeError: cannot insert an item into a CategoricalIndex that is not already an existing category
我相信这是有道理的,因为没有一个叫做“比率”的“性别”,这不是我想要的。有人有什么建议吗?我认为这很简单:

df["Ratio"] = df["F"] / df["M"]
但显然不是

编辑:

如果没有向原始数据帧输入新列,可能是从原始数据帧提取数据并使用该比率列创建新数据帧

编辑2:

以下是复制的步骤:

df = pd.DataFrame({
    'Credential': np.random.choice(['AA', 'AU', 'CNA'], 100), 
    'Gender': np.random.choice(['F', 'M'], 100), 
    'Counts': np.random.randn(100)
    })
df['Gender'] = df['Gender'].astype('category')
dfNew = pd.pivot_table(df, values='Counts', index='Credential', columns="Gender")
dfNew["Ratio"] = dfNew["F"] / dfNew["M"]
EDIT3(解决方案代码):

以下是解决此错误的步骤:

df = pd.DataFrame({
    'Credential': np.random.choice(['AA', 'AU', 'CNA'], 100), 
    'Gender': np.random.choice(['F', 'M'], 100), 
    'Counts': np.random.randn(100)
    })
df['Gender'] = df['Gender'].astype('category')
dfNew = pd.pivot_table(df, values='Counts', index='Credential', columns="Gender")

# Changing from categoricals
dfNew.columns = dfNew.columns.tolist()

dfNew["Ratio"] = dfNew["F"] / dfNew["M"]

这对我来说似乎很管用。如何创建透视表?您是否将其分配回df?您排除了此处所需的几乎所有代码。亲爱的ayhan,我已经编辑了我的帖子,以包含用于生成透视表的代码。您确定是这一行产生了错误吗<代码>df[“比率”]=df[“F”]/df[“M”]?这是我复制的尝试:是的。编辑该行输出会将数据帧打印两次,没有任何错误。这可能是一个错误。你的熊猫版本是什么<代码>打印(pd.\uuuuu版本)