如何根据条件乘以不同数据框的列
How to multiply columns of different dataframes based on conditions
我有 2 个不同的数据帧,第一个数据帧包含我想根据条件与第二个数据帧中的一个值相乘的值。
假设我的第一个数据框包含一个长列表,其值介于 1 和 10 之间,而我的第二个数据框包含值 x
、y
和 z
。然后我想将值 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
实际的数据帧比这个大,但这只是一个例子。
你能传递你的数据框吗?以某种方式抛出一个函数:
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
我有 2 个不同的数据帧,第一个数据帧包含我想根据条件与第二个数据帧中的一个值相乘的值。
假设我的第一个数据框包含一个长列表,其值介于 1 和 10 之间,而我的第二个数据框包含值 x
、y
和 z
。然后我想将值 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
实际的数据帧比这个大,但这只是一个例子。
你能传递你的数据框吗?以某种方式抛出一个函数:
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