Python 转换dataframe中的值列
我想在各自的C列值中转换0.00值 输出必须是:Python 转换dataframe中的值列,python,pandas,Python,Pandas,我想在各自的C列值中转换0.00值 输出必须是: A B C 0 mel 0.00 3.99 1 sid 7.23 13.30 2 alc 0.00 2.14 3 fas 8.12 108.00 我试过: A B C 0 mel 3.99 3.99 1 sid 7.23 13.30 2 alc 2.14 2.14 3 fas 8.12 108.00 替换+b填充 d
A B C
0 mel 0.00 3.99
1 sid 7.23 13.30
2 alc 0.00 2.14
3 fas 8.12 108.00
我试过:
A B C
0 mel 3.99 3.99
1 sid 7.23 13.30
2 alc 2.14 2.14
3 fas 8.12 108.00
替换
+b填充
df.replace(["0.00"], ["C"])
或
替换
+b填充
df.replace(["0.00"], ["C"])
或
另一种方式:
获取要填充的行的索引。然后替换这些值:
df.loc[df.B==0,'B']=df.C
df
Out[2052]:
A B C
0 mel 3.99 3.99
1 sid 7.23 13.30
2 alc 2.14 2.14
3 fas 8.12 108.00
您可以将其作为一行,但为了清晰起见,我这样写。另一种方式:
获取要填充的行的索引。然后替换这些值:
df.loc[df.B==0,'B']=df.C
df
Out[2052]:
A B C
0 mel 3.99 3.99
1 sid 7.23 13.30
2 alc 2.14 2.14
3 fas 8.12 108.00
您可以将其作为一行,但为了清晰起见,我还是这样写的。单向:
idx = df["B"] == 0
df.loc[idx, "B"] = df.loc[idx, "C"]
print(df)
# A B C
#0 mel 3.99 3.99
#1 sid 7.23 13.30
#2 alc 2.14 2.14
#3 fas 8.12 108.00
结果:
df.loc[df['B'].eq(0), 'B'] = df['C']
单向:
idx = df["B"] == 0
df.loc[idx, "B"] = df.loc[idx, "C"]
print(df)
# A B C
#0 mel 3.99 3.99
#1 sid 7.23 13.30
#2 alc 2.14 2.14
#3 fas 8.12 108.00
结果:
df.loc[df['B'].eq(0), 'B'] = df['C']
另一艘班轮:
A B C
0 mel 3.99 3.99
1 sid 7.23 13.30
2 alc 2.14 2.14
3 fas 8.12 108.00
另一艘班轮:
A B C
0 mel 3.99 3.99
1 sid 7.23 13.30
2 alc 2.14 2.14
3 fas 8.12 108.00
甚至:
df.B.where(df.B!=0,df.C,inplace=True)
@JonClements是的,也许,面具和np.where也适用于此:-)关于猫科动物和剥皮以及许多方法和所有这些:)甚至:df.B.where(df.B!=0,df.C,inplace=True)
@JonClements是的,也许,面具和np。这也适用于:-)关于猫科动物和剥皮以及许多方法和所有这些:)