(1)我有29个数据帧的列表
(2)我有29个值的列表(都为int64)
我想将列表中的(1)列除以(2)的值-它们的排序顺序是我要除以的正确顺序
因此,例如,我希望将列表1中的第一个数据帧(第二列中的所有值)除以列表2中的第一个值。我希望将列表1中的第二个数据帧(第二列中的所有值)除以除以清单2中的第二个值,依此类推。例如:
这是我第一个列表中的第六个数据帧:
print(lst_1[6]):
ITIS q9036
0 7.0 7
1 2.0 5
2 1.0 4
3 3.0 3
4 5.0 2
这是我第二个列表中的第六个整数,值为14:
print(lst_2[6]):
array([[14]], dtype=int64
所以我要达到的结果是这样的:
ITIS q9036 Total Result
0 7.0 7 14 0.50
1 2.0 5 14 0.36
2 1.0 4 14 0.29
3 3.0 3 14 0.21
4 5.0 2 14 0.14
我想对所有29个整数的所有29个数据帧执行此操作
其他注意事项:第二列始终使用不同的名称
答案 0 :(得分:2)
将列表理解与zip
和assign
一起使用,因为必须通过[0][0]
选择每个整数都位于numpy数组中:
dfs = [df.assign(total = i[0][0],
result = df.iloc[:, -1] / i[0][0]) for i, df in zip(lst_2, lst_1)]
编辑:
dfs = [df.assign(total = i[0][0],
a = df.iloc[:, -1] / i[0][0])
.rename(columns={'a':'{}_pct'.format(df.columns[-1])}) for i, df in zip(lst_2, lst_1)]