rapids - 替换 C 列中的值,其中 A 列中的值为 x
问题描述
问题
在将空值替换为布尔值的过程中,我们在列中找到空值fireplace_count
。
如果fireplaceflag
value 是False
valuefireplace_count
null
应该替换为0
为熊猫而写
df_train.loc[(df_train.fireplace_count.isnull()) & (df_train.fireplaceflag==False),'fireplace_count'] = 0
解决方案
我建议使用 df.fillna() 并将列名放在方法中以定位它,例如:
df['<column_name>']=df.<columnname>.fillna(<new_value>)
您可以将要更改空值的新值放入括号中。在您的情况下,这是“0”。让我们也简化问题,因为似乎None
值的条件是是否有False
标志。
我将使用您之前发送给我的系列,稍作改动。
import cudf
df = cudf.DataFrame({'basement_flag': [1, 1, 1, 0],
'basementsqft': [400,750,500,0],
'fireplace_count': [2, None, None, 1], #<-- added a None to illustrate the targeted nature of the solution
'fireplaceflag': [10, None, None, 8]})
print(df)
df['fireplace_count']=df.fireplace_count.fillna(0) #<-- This is the solution. It changes only the values in the column of interest, which is what you explained that you needed
print(df)
输出将是:
basement_flag basementsqft fireplace_count fireplaceflag
0 1 400 2 10
1 1 750
2 1 500
3 0 0 1 8
basement_flag basementsqft fireplace_count fireplaceflag
0 1 400 2 10
1 1 750 0
2 1 500 0
3 0 0 1 8
还有...
df['fireplace_count'] = df['fireplace_count'].fillna(0)
df['fireplaceflag']= df['fireplaceflag'].fillna(-1)
df['fireplaceflag'] = df['fireplaceflag'].masked_assign(1, df['fireplace_count'] > 0)
根据我认为您的问题,这应该适用于任何奇怪的情况(感谢 Roy F @ NVIDIA)
让我知道这是否适合您,或者您是否需要更多帮助!
推荐阅读
- postgresql - 在 PostgreSQL 中为特定模式和表所有者创建表的过程是什么
- android - Android Room 不确定如何将光标转换为方法的返回类型问题
- python - Anaconda 不工作/卸载痕迹可能会阻止
- cmake - 如何在 cmake 中包含 -fPIC?
- ios - 使用 Firebase 在 iOS 上远程配置图像视图的最佳方法是什么?
- python - 尝试用 matplotlib 制作动画
- linux - 使用 proxypass 从 apache2 访问 localhost
- java - SpringBoot 自定义健康指示器未显示
- python - 我需要删除某个列中没有值或为“null”的所有行:使用 Python 和 Pandas
- mysql - MySQL - SELECT 中计算列的访问值