![](/img/trans.png)
[英]How to replace a string value on a specific column by keeping other values unchanged in python DataFrame
[英]How replace values of column with specific value in python?
我是 pandas 的新手,我面临更换问题。 所以我正在创建一个 function ,它根据参数替换数据框列的值。 条件是它应该只用一个值替换列的所有值,如下所示: 虽然我尝试收到错误“长度不匹配”
def replace(df,column,condition):
for i in column:
for j in condition:
df[i]=j
return df
column = ['A','C']
condition = 11,34
df
A B C
0 12 5 1
1 13 6 5
2 14 7 7
replace(df,column,condition)
my excepted output:
A B C
0 11 5 34
1 11 6 34
2 11 7 34
使用键:值对,将条件和列转换为字典,解包并分配值
df.assign(**dict(zip(column, condition)))
编辑:我最初建议使用apply
但后来意识到这没有必要,因为您忽略了系列中的现有值。 这更简单,应该可以满足您的目的。
例子:
import pandas as pd
data = [[12, 5, 1], [13, 5, 5], [14, 7, 7]]
df = pd.DataFrame(data, columns = ["A", "B", "C"])
def replace(df, columns, values):
for one_column, one_value in zip(columns, values):
df[one_column] = one_value
return df
print(replace(df, ["A", "C"], [11, 34]))
Output:
A B C
0 11 5 34
1 11 5 34
2 11 7 34
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.