Как выбрать столбец данных на основе списка? - PullRequest
0 голосов
/ 27 февраля 2020

Я хочу создать условие, основанное на каждом значении, уникальном для столбца фрейма данных, используя 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])] не работает!
У всех есть идеи, как сделать это ?

1 Ответ

0 голосов
/ 27 февраля 2020

Вам нужно использовать == вместо =. == для сравнения значений, в то время как = для присвоения значений.

Например:

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']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...