python-3.x - Python中的条件数据插补
问题描述
我正在尝试有条件地估算我的数据集中的值。
假设我有三列,如果第 1 列为 1,则第 2 列为 0,第 3 列为 0;如果第 1 列是 2,那么第 2 列是 Mean (),第 3 列是 Mean()。
我尝试使用函数 any() 运行 if 语句并分别定义条件。
但是,根据条件没有满足条件,我要么得到所有平均值,要么得到全零。
确切的代码如下:
if (df['Retention_Term'] == 6):
df.cl_tot_calls_term_seq_1.replace(999, np.nan,inplace = True)
df['cl_tot_calls_term_seq_1'].fillna(df['cl_tot_calls_term_seq_1'].median(),inplace= True)
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
解决方案
像这样试试。
mask1 = df['Retention_Term']==6
mask2 = df['cl_tot_calls_term_seq_1'] == 999
df.loc[mask1 & mask2, 'cl_tot_calls_term_seq_1'] = np.nan
然后其余的应该没问题。
df['cl_tot_calls_term_seq_1'].fillna(df['cl_tot_calls_term_seq_1'].median(), inplace= True)
推荐阅读
- bevy - 有没有办法访问 Bevy 中的相机缓冲区?
- reactjs - 如何使用 react-native-gl-image-filters 库包含/调整裁剪的相机图像?
- python - 视图 mysiteapp.views.addpost 没有返回 HttpResponse 对象。它返回 None 而不是
- android - 使用 allinone sdk 进行支付交易时发生 Paytm “networkError”
- powershell - 在 Powershell 中更改导出的 CSV 文件中的条目和列
- python - 清除字段后,文本输入字段会导致 chrome selenium 崩溃
- python - 在 self.__init__() 方法中使用 getpass() 失败,但在功能上使用时工作正常。为什么是这样?
- python - 关于 python 中文件可访问性的建议
- amazon-web-services - 在 EKS 中运行的应用程序是否需要 AWS ALB?
- node.js - 没有数据显示应用何时托管在 heroku 上