简体   繁体   English

使用循环Python重命名dataframe列内的值

[英]Rename values inside a dataframe column using loop python

I have created a loop to manipulate a dataframe from a query. 我创建了一个循环来处理查询中的数据框。

contas = ["Margem Bruta","Faturamento", "Resultado Bruto", "Resultado Líquido", "Despesas Operacionais", "Despesas Vendas"]
results = []
for i in contas:

The result is a dataframe like this: 结果是这样的数据框:

    Year  Period          y       yhat       Contas Resultado
0   2017       1  23.818044  23.818033            Faturamento
1   2017       2  20.275252  20.275264            Faturamento
2   2017       3  22.347278  22.347281            Faturamento
3   2017       4  23.837490  23.837491            Faturamento
4   2017       5  23.460605  23.460606            Faturamento
5   2017       6  22.307115  22.307115            Faturamento
6   2017       7  23.643994  23.643991            Faturamento
7   2017       8  23.791720  23.791714            Faturamento
8   2017       9  23.643933  23.643927            Faturamento
9   2017      10  20.771269  20.771262            Faturamento
10  2017      11  21.317947  21.317948            Faturamento
11  2017      12  22.361570  22.361584            Faturamento
12  2018       1  24.336259  24.336270            Faturamento
13  2018       2  19.926928  19.926916            Faturamento
14  2018       3  22.714901  22.714898            Faturamento
15  2018       4  23.605119  23.605118            Faturamento
16  2018       5  23.653298  23.653297            Faturamento
17  2018       6  23.052182  23.052181            Faturamento
18  2018       7  24.377920  24.377923            Faturamento
19  2018       8  24.576733  24.576738            Faturamento
20  2018       9  24.376775  24.376781            Faturamento
21  2018      10  21.256970  21.256976            Faturamento
22  2018      11  21.969202  21.969200            Faturamento
23  2018      12  22.970637  22.970623            Faturamento
25  2019       1   0.000000  19.337573                      0
[125 rows x 5 columns]

My problem is: 我的问题是:

How can I replace the last 0 value of 'Contas Resultado' Column using the loop list ? 如何使用循环列表替换“ Contas Resultado”列的最后0个值?

I tried this: 我尝试了这个:

  result = result['Contas Resultado'].replace({'0': [i]}, inplace = True)

But I didn't get the right output : 但是我没有得到正确的输出:

                                     0                      1   \
Contas Resultado            Faturamento            Faturamento   
Contas Resultado        Resultado Bruto        Resultado Bruto   
Contas Resultado      Resultado Líquido      Resultado Líquido   
Contas Resultado  Despesas Operacionais  Despesas Operacionais   
Contas Resultado        Despesas Vendas        Despesas Vendas   

I just want to change all the lines that "contas resultado' is zero. 我只想更改“ contas resultado”为零的所有行。

25  2019       1   0.000000  19.337573                      0

to the corresponding value of the loop list 到循环列表的相应值

25  2019       1   0.000000  19.337573                      Faturamento

try the following 尝试以下

idx = result['Contas Resultado'] == 0
result.loc[idx, 'Contas Resultado'] = 'Faturamento'

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM