首页 > 解决方案 > 有没有办法改进 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 份吗?之前和之后,只是合并它?

在此处输入图像描述

标签: pythonpython-3.xpandasdataframe

解决方案


推荐阅读