根据条件DataFrame仅更改1个单元格的值

时间:2020-01-24 17:04:09

标签: python pandas dataframe

根据条件,我想更改某一列上第一行的值,到目前为止,这是我所拥有的

despesas['recibos'] =''
for a in recibos['recibos']:
    if len(despesas.loc[(despesas['despesas']==a) & (despesas['recibos']==''), 'recibos'])>0:
        despesas.loc[(despesas['despesas']==a) & (despesas['recibos']==''), 
'recibos'].iloc[0] =a

所以我只想通过 a 上的值更改列 recibos 的第一个值,其中(despesas ['despesas'] == a) &(despesas ['recibos'] =='')

编辑1

示例:

despesas['despesas'] = [11.95,  2.5,  1.2 ,  0.6 ,  2.66,  2.66,  3.  , 47.5 , 16.95,17.56]
recibos['recibos'] = [11.95,  1.2 ,  1.2 ,  0.2 ,  2.66,  2.66,  3.  , 47.5 , 16.95, 17.56]

结果应该是:

[[11.95, 11.95],  [2.5, null] ,  [1.2, 1.2] ,  [0.6, null] ,  [2.66, 2.66],  [2.66, 2.66],  [3., 3] , [47.5, 45.5 ], [16.95, 16.95], [17.56, 17.56]]

2 个答案:

答案 0 :(得分:0)

可能可行:

Map

答案 1 :(得分:0)

我找到了想要的解决方案

import pandas as pd
from matplotlib import pyplot as plt

df = pd.DataFrame(columns=['id', 'name', 'group', 'year', 'value'],
                  data=[[5827, 'Tokyo', 'Asia', 1800, 685.000000],
                        [864, 'Bijapur', 'India', 1649, 340.000000],
                        [1952, 'Hangzhou', 'Asia', 1661, 283.612500],
                        [769, 'Berlin', 'Europe', 1922, 3873.090909],
                        [3709, 'Mumbai', 'India', 1979, 8342.800000]])
df.plot(kind='barh', y='value', x='name', color='crimson')
plt.tight_layout()
plt.show()