pandas - 我的 .loc 有多个条件一直在运行...帮我降落飞机
问题描述
当我尝试运行下面的代码时,它一直在运行。有什么明显的吗?
df.loc[(df['Target_Group'] == 'x') & (df['Period'].dt.year == df['Year_Performed'].dt.year), ['Target_P']] = df.loc[(df['Target_Group'] == 'x') & (df['Period'].dt.year == df['Year_Performed'].dt.year), ['y']]
解决方案
pandas
是index
敏感的,所以你不需要重复赋值条件
cond=(df['Target_Group'] == 'x') & (df['Period'].dt.year == df['Year_Performed'].dt.year)
df.loc[cond, 'Target_P'] = df.y
更多信息,示例
df=pd.DataFrame({'cond':[1,2],'v1':[-110,-11],'v2':[9999,999999]})
df.loc[df.cond==1,'v1']=df.v2
df
Out[200]:
cond v1 v2
0 1 9999 9999
1 2 -11 999999
如果索引包含重复
df.loc[cond, 'Target_P'] = df.loc[cond,'y'].values
推荐阅读
- palantir-foundry - 如何处理代码存储库中的大文件?
- java - apache-camel:如何拆分对象集合并在每个对象上进行迭代?
- python - Plotly:如何为类别分配特定颜色?
- unix - Unix:用另一个文件中的字符串替换行
- android - 在android中设置闹钟
- python - 在Python中从M个不同长度的列表中选择N个元素的多个随机序列
- javascript - 多页使用同一个JS文件
- c++ - 如何同时提供默认模板参数和模板函数实参默认值?
- node.js - Npm 安装失败,节点 15(不是 LTS)“@angular-devkit/build-angular”:“~0.1000.0”
- python - 如何计算列数据框Python中的出现次数