Как заменить значение строки без изменения других значений в фрейме данных pandas? - PullRequest
0 голосов
/ 09 апреля 2020

Я запускаю один python скрипт. Я хочу изменить определенное значение строки без изменения другого значения. Не могли бы вы помочь мне, как это сделать?

пример:

df1
Table           Count
case            20
recordtype      50
consumer        70
settlement      150
address         250
bridge          130

Я запустил процесс только для задания «дело» и «потребитель». Теперь новый счетчик для случая и потребителя равен 80 и 150, но я получаю такой файл:

Table           Count
case            20
recordtype      50
consumer        70
settlement      150
address         250
case            80
consumer        150

Он не заменяет значение счетчика. Это просто добавление нового столбца. Но я хочу получить такой результат:

df

Table           Count
case            80
recordtype      50
consumer        150
settlement      150
address         250

Можете ли вы помочь мне, основываясь на названии таблицы, как я могу заменить значение?

Я использую следующий код:

if(os.path.isfile('/medaff/Scripts/python/count.txt')):
            df_s.to_csv('/medaff/Scripts/python/count.txt',mode='a', sep = '|', index= False, header=False)
else:
            df_s.to_csv('/medaff/Scripts/python/count.txt', sep = '|', index= False)

1 Ответ

0 голосов
/ 09 апреля 2020

Я исправил проблему, используя следующий код:

if(os.path.isfile('/medaff/Scripts/python/count.txt')):
            df_s1 = pd.read_csv('/medaff/Scripts/python/count.txt', delimiter='|')
            for index, row in df_s.iterrows():
                print(row)
                print(row['Master Job Name'])
                print(row['Current_Count'])
                idx1=(df_s1['Master Job Name'] == row['Master Job Name'])

                df_s1.at[idx1, 'Current_Count'] = row['Current_Count']
            set1 = set(list(df_s['Master Job Name'].unique()))
            set2 = set(list(df_s1['Master Job Name'].unique()))
            set1 = list(set1 - set2)

            df_s_new = df_s[df_s['Master Job Name'].isin(set1)]

            df_s1 = df_s1.append(df_s_new)
            df_s1.to_csv('/medaff/Scripts/python/count.txt', sep='|', index=False)

else:
        df_s.to_csv('/medaff/Scripts/python/count.txt', mode='a', sep = '|', index= False)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...