[英]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.