我有一个这样的数据框:
lis = [['a','b','c'],
['17','10','6'],
['5','30','x'],
['78','50','2'],
['4','58','x']]
df = pd.DataFrame(lis[1:],columns=lis[0])
Run Code Online (Sandbox Code Playgroud)
我该如何写一个函数,说如果[x]在[c]列中,然后用[b]列中的相应值覆盖该值。结果将是这样的:
[['a','b','c'],
['17','10','6'],
['5','30','30'],
['78','50','2'],
['4','58','58']]
Run Code Online (Sandbox Code Playgroud)
通过使用.loc和np.where
import numpy as np
df.c=np.where(df.c=='x',df.b,df.c)
df
Out[569]:
a b c
0 17 10 6
1 5 30 30
2 78 50 2
3 4 58 58
Run Code Online (Sandbox Code Playgroud)