我将csv转换为名为a的列表。我有办法通过条件分类我的数据。问题是它无法正常工作。如果有任何名为' Stable'在我Cliente
的所有内容中,我设置了'Estable'
的条件,这不是我需要的,但对于没有'Estable'
作为AAA和BBB的所有客户,我希望您放置{{1}我在下面解释代码。
'NoAnalyzed'
答案 0 :(得分:3)
我相信你需要numpy.where
或map
,因为在熊猫中最好避免循环因为慢:
mask = df['Analisis'] == 'Estable'
df['Status'] = np.where(mask, 'Stable: The client''s performance was Stable', 'NoAnalyzed')
或类似的:
d = {True: 'Stable: The client''s performance was Stable',False: 'NoAnalyzed'}
df['Status'] = mask.map(d)
print (df)
Cliente Fecha Variables Dia Previo Mayor/Menor \
0 AAA 27/12/2017 ECPM_medio 0.41 Dentro del Margen
1 BBB 27/12/2017 ECPM_medio 1.06 Dentro del Margen
2 CCC 27/12/2017 ECPM_medio 1.06 Dentro del Margen
Dia a Analizar Analisis Status
0 0.35 Incremento NoAnalyzed
1 1.06 Alerta NoAnalyzed
2 1.06 Estable Stable: The clients performance was Stable
答案 1 :(得分:0)
问题是您是直接将单个值分配给列而不是列表/数组/系列。单个值在每行中复制自身。我建议您制作一个列表并将其分配给您的df ['状态']列。
status=[]
for elemento in df['Analisis']:
if elemento == 'Estable'
status.append('Stable: The client''s performance was Stable')
else:
status.append('NoAnalyzed')
df['Status'] = status
这应该有用。