python - 使用Python CSV分析数据

标签 python python-2.7 pandas csv dataframe

我将 csv 转换为名为 a 的列表。我有办法通过条件对数据进行分类。问题是它不起作用。如果我的所有 Cliente 上有任何名为“Stable”的元素,我会放置 'Estable' 的条件,这不是我需要的,但对于所有没有的客户端'Estable' 作为 AAA 和 BBB 我希望您将 'NoAnalyzed' 正如我在代码下面解释的那样。

import pandas as pd

a = [['Cliente', 'Fecha', 'Variables', 'Dia Previo', 'Mayor/Menor', 'Dia a Analizar', 'Analisis'], 
['AAA', '27/12/2017', 'ECPM_medio', '0.41', 'Dentro del Margen', '0.35', 'Incremento'],
['BBB', '27/12/2017', 'ECPM_medio', '1.06', 'Dentro del Margen', '1.06', 'Alerta'],
['CCC', '27/12/2017', 'ECPM_medio', '1.06', 'Dentro del Margen', '1.06', 'Estable']]



headers = a.pop(0)
df = pd.DataFrame(a, columns = headers)
df['Analisis']


for elemento in df['Analisis']:
    if elemento == 'Estable':
        df['Status'] = 'Stable: The client''s performance was Stable'
    else:
        df['Status'] = 'NoAnalyzed'


df1= df.groupby(['Cliente','Fecha', 'Status']).size()
df1

output:
>>>
Cliente  Fecha       Status                                    
AAA      27/12/2017  Stable: The clients performance was Stable    1
BBB      27/12/2017  Stable: The clients performance was Stable    1
CCC      27/12/2017  Stable: The clients performance was Stable    1

I need:
>>>
Cliente  Fecha       Status                                    
AAA      27/12/2017  NoAnalyzed    1
BBB      27/12/2017  NoAnalyzed    1
CCC      27/12/2017  Stable: The clients performance was Stable    1

最佳答案

我相信你需要numpy.wheremap ,因为在 pandas 中最好避免循环,因为速度慢:

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  

关于python - 使用Python CSV分析数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48062858/

相关文章:

python - 如何在 pyGTK 超时中调用函数?

python - PyGTK:双击 CellRenderer

python - 选择一个有效的选项..该选项不是可用的选项之一

python - 'if x % 2 : return True' , 如果数字可以被 2 整除,那不会返回 True 吗?

python - 如何获取分类数据的分组条形图

python - 获取 pandas 中连续行中唯一值的个数

python - 最新的 Python asterisk AGI Asterisk 框架是什么?

c - Python C API - 线程安全吗?

python - 我想将 pandas DataFrame 中的两列相乘并将结果添加到新列中

Python - 下载项目列表