Python 如何在不更改数据帧中其他值的情况下替换行值?
我正在运行一个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
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中生成输出,然后我将进行计数。