Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在不更改数据帧中其他值的情况下替换行值?_Python_Pandas_Csv_Dataframe - Fatal编程技术网

Python 如何在不更改数据帧中其他值的情况下替换行值?

Python 如何在不更改数据帧中其他值的情况下替换行值?,python,pandas,csv,dataframe,Python,Pandas,Csv,Dataframe,我正在运行一个python脚本。我希望在不更改其他值的情况下更改特定的行值。 你能帮我怎么做吗 例如: df1 Table Count case 20 recordtype 50 consumer 70 settlement 150 address 250 bridge 130 我只为“案例”和“消费者”工作运行该流程。现在新的计数在案件和消费者是80和150,但我得到的文件像这样 T

我正在运行一个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)
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)

我使用以下代码修复了该问题:

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)
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)

似乎主题是误导性的。请澄清这里的内容。您拥有什么以及您试图实现什么。另外
我只为“案例”和“消费者”作业运行了该流程。
?@iamklaus我正在基于Active\u flg运行该流程。因此,我将Active_flg='Y'仅用于case和consumer。所以只有两个作业将运行意味着运行sql查询并在dataframe中生成输出,然后我将进行计数。