我有一个像下面这样的Pandas DataFrame:
col1 col2 col3
1 0.2 0.3 0.3
2 0.2 0.3 0.3
3 0 0.4 0.4
4 0 0 0.3
5 0 0 0
6 0.1 0.4 0.4
Run Code Online (Sandbox Code Playgroud)
我希望仅在值等于0 col1时将值替换为第二列(col2)中的col1值,并且在(对于剩余的零值)之后,再次使用第三列(col3)进行替换.期望的结果是下一个:
col1 col2 col3
1 0.2 0.3 0.3
2 0.2 0.3 0.3
3 0.4 0.4 0.4
4 0.3 0 0.3
5 0 0 0
6 0.1 0.4 0.4
Run Code Online (Sandbox Code Playgroud)
我使用该pd.replace功能做到了,但它似乎太慢了......我认为必须是一种更快的方法来实现它.
df.col1.replace(0,df.col2,inplace=True)
df.col1.replace(0,df.col3,inplace=True)
Run Code Online (Sandbox Code Playgroud)
有更快的方法吗?使用其他功能而不是pd.replace功能?
我有一个数据框:
df =
col1 col2 col3
1 2 3
1 4 6
3 7 2
Run Code Online (Sandbox Code Playgroud)
我想编辑df,当 col1 的值小于 2 时,从col3.
所以我会得到:
new_df =
col1 col2 col3
3 2 3
6 4 6
3 7 2
Run Code Online (Sandbox Code Playgroud)
我尝试使用assign,df.loc但没有用。
这样做的最佳方法是什么?