我想遍历pd数据框中的一列,并用适当的值替换所有相应的值。
值在A列中为1-46。
x=0
y=1000
1=0
2=1
3-22=x+50
23-46=y+100
Input:
Column A
1
2
3
4
23
24
Expected Output:
0
1
50
100
1100
1200
答案 0 :(得分:2)
您可以将pandas.Series.map
与lambda
函数一起使用,该函数将每个旧值映射到其新值(使用我从您的示例中猜测的公式):
...
x=0
y=1000
df['A'] = df['A'].map(lambda n:
n - 1 if n <= 2 else (
x + 50 * (n - 2) if 3 <= n <= 22 else (
y + 100 * (n - 22)
)
)
)
print(df)
输出:
A
0 0
1 1
2 50
3 100
4 1100
5 1200