简体   繁体   English

python,pandas - 如何替换数据框列中的值

[英]python, pandas - how to replace values in a data frame column

I have a following code which suppose to create a new column "TEMP1" which is a column "TEMP" with some replacements - replace #1 to a value of column PARM1:我有以下代码假设创建一个新列“TEMP1”,这是一个带有一些替换的“TEMP”列 - 将#1替换为PARM1列的值:

import pandas as pd
d = {'col1': [1, 2], 'TEMP': ['kk(#1,#2)', 'kk(#1,#2)'], 'PARM1':['VAR1','VAR2'], 'PARM2':['VAR3','VAR1']}
df = pd.DataFrame(data=d)
df['TEMP1']=df['TEMP'].to_string(index=False).replace('#1',df['PARM1'].to_string(index=False))
print(df)

what i get is:我得到的是:

   col1       TEMP PARM1 PARM2                                 TEMP1
0     1  kk(#1,#2)  VAR1  VAR3  kk(VAR1\nVAR2,#2)\nkk(VAR1\nVAR2,#2)
1     2  kk(#1,#2)  VAR2  VAR1  kk(VAR1\nVAR2,#2)\nkk(VAR1\nVAR2,#2)

so, instead of using only value of PARM1 in the same row, it replaces with all values of PARM1 separated by a new line symbol what i need is just因此,它不是在同一行中仅使用 PARM1 的值,而是用由换行符分隔的所有 PARM1 值替换我需要的只是

kk(VAR1,#2)
kk(VAR2,#2)

If your table format is pretty stable you could do something like this如果您的表格格式非常稳定,您可以执行以下操作

d = {'col1': [1, 2], 'TEMP': ['kk(#1,#2)', 'kk(#1,#2)'], 'PARM1':['VAR1','VAR2'], 'PARM2':['VAR3','VAR1']}
df = pd.DataFrame(data=d)
df['TEMP1'] = df['TEMP']
for i in range(0, len(df)):
    df.at[i, 'TEMP1'] = df.iloc[i]['TEMP1'].replace('#1', df.iloc[i]['PARM1'])
df

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

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