python 将每个单元格的第一个数字相乘

wkftcu5l  于 2023-02-28  发布在  Python
关注(0)|答案(1)|浏览(248)
import pandas as pd
import numpy as np
dataset ={ 
         "g1":[(1,2,3), (1,4,5),(6,5,8)],
         "g2":[(6,5,4),(9,6,4),(5,8,7)],
         "g3":[(2,5,6),(6,5,8),(5,8,6)]
}

df = pd.DataFrame (dataset, index = ["g1", "g2", "g3"])
print(df)

这是我的数据框,我想把每一行的第一个元素相乘(我用蓝铅笔标出了要相乘的数字),然后我想把它们打印到R列中。

zbsbpyhn

zbsbpyhn1#

您可以使用str进行切片,也可以使用prod

df['R'] = df.apply(lambda c: c.str[0]).prod(axis=1)

或者将DataFrame转换为3D numpy数组:

a = np.array(df.to_numpy().tolist())

df['R'] = a[..., 0].prod(axis=1)

输出:

g1         g2         g3    R
g1  (1, 2, 3)  (6, 5, 4)  (2, 5, 6)   12
g2  (1, 4, 5)  (9, 6, 4)  (6, 5, 8)   54
g3  (6, 5, 8)  (5, 8, 7)  (5, 8, 6)  150

相关问题