python中的迭代和条件

2024-10-04 05:34:20 发布

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

shipportMD=pd.read_csv('shipportMD.csv')

for importName in shipportMD['importName'].unique():
    if (len(shipportMD['ItemDecision']=='Accepted')>len(shipportMD['ItemDecision']=='Rejected')):
        print (shipportMD['importName'])

我需要为ItemDecision打印importName值,其中'Accepted'值多于'Rejected'

例如:

导入名称:x,y,x,x

项目决策:拒绝,接受,拒绝,接受

所以x有2个被拒绝,1个被接受


Tags: csvin名称forreadlenifpd
1条回答
网友
1楼 · 发布于 2024-10-04 05:34:20

可以使用^{},然后使用布尔掩码:

df = pd.DataFrame({'ID': [1, 1, 1, 1, 2, 2, 2, 2],
                   'Decision': ['Accepted', 'Rejected', 'Rejected', 'Rejected',
                                'Accepted', 'Accepted', 'Rejected', 'Accepted']})

df_ct = pd.crosstab(df['ID'], df['Decision'])

condition = df_ct['Accepted'] > df_ct['Rejected']

res = df_ct[condition].index  
# Int64Index([2], dtype='int64', name='ID')

或者对交叉列表结果执行您选择的计算:

print(df_ct)

Decision  Accepted  Rejected
ID                          
1                1         3
2                3         1

相关问题 更多 >