如何根据条件将不同数据框的列相乘

时间:2020-10-02 16:26:52

标签: python conditional-statements multiplication

我有2个不同的数据帧,第一个数据帧包含要根据条件与第二个数据帧中的一个值相乘的值。

因此,假设我的第一个数据帧包含一个长列表,其值介于1到10之间,而我的第二个数据帧包含值xyz。然后我想将值1-3与x相乘,将4-6与y相乘,将7-10与z相乘。

我该怎么做?

示例输入:

df1          df2
1             x
2             y
3             z
4
5
6
7
8
9
10

所需的输出:

1x
2x
3x
4y
5y
6y
7z
8z
9z
10z

实际数据帧大于此,但这只是一个例子。

1 个答案:

答案 0 :(得分:1)

您能否通过数据框抛出这样的函数:

def newDf(df1, df2):
    df = []
    for idx, i in enumerate(df1):
        if idx <= 2: # 1st condition
            df.append(i * df2[0])
        elif idx <= 5: # 2nd condition
            df.append(i * df2[1])
        else:
            new_df.append(i * df2[2])

    return df