如何基于列表选择dataframe列?

2024-05-18 13:57:43 发布

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

我想使用python基于数据帧列的每个值创建一个唯一的条件

我尝试将其放入列表并迭代以获取所有值:

**f=(df['Technical family'].unique())
for i in f:
    df_2 = df[(df['Technical family'] = f[i])]
    S=pd.crosstab(df_2['PFG | ID'],df_2['Comp. | Family'])

    **

但是显然df_2 = df[(df['Technical family'] = f[i])]不起作用
有人知道怎么做吗


Tags: 数据iniddf列表for条件family
1条回答
网友
1楼 · 发布于 2024-05-18 13:57:43

您需要使用==而不是===用于比较值,而=用于赋值

例如:

df = pd.DataFrame({'Technical family':np.random.choice(['1','2','3'],100),
                   'PFG | ID':np.random.choice(['A','B','C'],100),
                   'Comp. | Family':np.random.choice(['a','b','c'],100)})

f=(df['Technical family'].unique())
df_2 = df[df['Technical family']==f[0]]
pd.crosstab(df_2['PFG | ID'],df_2['Comp. | Family'])


Comp. | Family  a   b   c
PFG | ID            
A   5   5   3
B   3   5   3
C   4   3   4

另外,作为进一步建议,您可以直接交叉表:

res = pd.crosstab([df['Technical family'],df['PFG | ID']],df['Comp. | Family'])
res.loc['1']

相关问题 更多 >

    热门问题