相关疑难解决方法(0)

有效地将列中的值替换为另一列Pandas DataFrame

我有一个像下面这样的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功能?

python replace dataframe pandas

9
推荐指数
2
解决办法
2万
查看次数

如果满足条件,pandas 将值从一列复制到另一列

我有一个数据框:

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但没有用。

这样做的最佳方法是什么?

python pandas data-science data-munging

3
推荐指数
2
解决办法
4903
查看次数

标签 统计

pandas ×2

python ×2

data-munging ×1

data-science ×1

dataframe ×1

replace ×1