首页 > 解决方案 > 将系列乘以元组

问题描述

如何将系列与系列相乘tuple,系列中的每个值将乘以tuple.

我编写了一个代码示例来向您展示预期结果的示例:

import numpy as np
import pandas as pd

def main():
    s = pd.Series(data=np.around(a=np.random.uniform(size=10), decimals=3))
    t = (2, 3, 5, 7)
    print(s)

if __name__ == '__main__':
    main()

我的输出:

0    0.709
1    0.567
2    0.894
3    0.660
4    0.348
5    0.465
6    0.974
7    0.832
8    0.888
9    0.265
dtype: float64

我需要得到这个结果:

0    (1.418, 2.127, 3.545, 4.963)
1    (1.134, 1.701, 2.835, 3.969)
2    (..., ..., ..., ...)
3    (..., ..., ..., ...)
4    (..., ..., ..., ...)
5    (..., ..., ..., ...)
6    (..., ..., ..., ...)
7    (..., ..., ..., ...)
8    (..., ..., ..., ...)
9    (..., ..., ..., ...)
dtype: float64

标签: pythonpandasseries

解决方案


将元组转换为 NumPy 数组会使您的工作更轻松。它只是将整个数组与 Series 中存在的元素相乘,然后您可以再次将 NumPy 数组转换为元组。尽管使用 numpy 数组处理更大尺寸的元组时多次转换效率不高。如果在处理 NumPy 数组的系列中不需要出现元组是一个很好的做法。下面的代码完成了这项工作。

    import pandas as pd
    import numpy as np
    s = pd.Series(data=np.around(a=np.random.uniform(size=10), decimals=3))
    t = np.array((2, 3, 5, 7))
    s=pd.Series([tuple(x*t) for x in s]).

推荐阅读