python - 有没有办法改进 Pandas 中的多个键列选择
问题描述
有没有办法改进我在 2 个数据帧上的关键列选择?下面的数据是我编码的,结果预期是正确的。
我列出了 key_columns 以供参考,因为我用它来删除重复项,而不是一一指示列。
如果我在 FOR 循环中的选择有什么方法可以缩短或以 Python 方式编写,我需要帮助吗?这将是一个很大的帮助,因为我需要选择除 QTY 之外的更多数据。谢谢你。
key_columns = ['COMPANY', 'PLANT', 'MATERIAL', 'DATE']
dfunique = dfunique.drop_duplicates(key_columns)
# convert all into a new table
for i, dfkey in dfunique.iterrows():
try:
dfunique.loc[i, 'BEFORE_QTY'] = df[df.COMPANY == dfkey.COMPANY] \
[df.PLANT == dfkey.PLANT] \
[df.MATERIAL == dfkey.MATERIAL] \
[df.DATE == dfkey.DATE] \
[df.ROW_TYPE == 'BEFORE'].QTY.item()
except ValueError:
dfunique.loc[i, 'BEFORE_QTY'] = 0
样本数据 你好,我的输出期望是这样的,逻辑是正确的,我只是关心选择。关于 MERGE 建议的问题,我应该把我的桌子分成 2 份吗?之前和之后,只是合并它?
解决方案
推荐阅读
- r - 如何并排排列“ggplot2”对象并确保绘图区域相等?
- javascript - 我怎样才能摆脱这么多的调度?
- java - Symmetricds:添加列运行时
- python - 如何使用类方法而不是调用构造函数来初始化父类?
- c - 有人可以帮我 idk 这意味着 1 做
- r - 带有 `geom_vline` 和 `geom_hline` 的 ggplot。任务:需要单独的图例
- ios - 未找到模块 Google Maps Flutter Xcode 12.3
- vuejs2 - vue-multiselect 不加载选项 vuejs
- javascript - 在 Nodejs 中运行带有“umd”模块系统的 webpack 捆绑 JS 库会引发错误:“self”未定义
- sql - 更新到 4.1.1 后在 R 中使用 file.remove 时权限被拒绝