如何将Pandas DataFrame中数组列的元素与另一列数值相乘生成新列?
如何将Pandas DataFrame中数组列的元素与另一列数值相乘生成新列?
嘿,你的思路完全没问题!你想要实现的是把DataFrame里数组列的每个元素和对应行的另一列数值相乘,生成新的数组列,你的代码其实已经完美达成这个需求了。
先看你给出的示例数据和代码:
import pandas as pd data = {'a': [3, 2], 'b': [[4], [7, 2]]} df = pd.DataFrame(data) df['c'] = df.apply(lambda row: [row['a'] * x for x in row['b']])
这里的关键是用df.apply()逐行处理数据,通过列表推导式把当前行a列的数值,和b列数组里的每一个元素分别相乘,最后将结果赋值给新列c。
运行这段代码后,得到的结果正好是你想要的:
| a | b | c |
|---|---|---|
| 3 | [4] | [12] |
| 2 | [7, 2] | [14, 4] |
如果后续要处理大规模数据集,还可以考虑用更高效的向量化操作,但对于这种小规模场景,你的写法已经足够清晰易懂啦。
备注:内容来源于stack exchange,提问作者STOWE
相关产品推荐
相关产品推荐

