gpt4 book ai didi

python - 将函数应用于 Pandas 行-行叉积

转载 作者:行者123 更新时间:2023-12-03 14:33:59 24 4
gpt4 key购买 nike

我有两个 Pandas DataFrames/Series,每个包含一行。

df1 = pd.DataFrame([1, 2, 3, 4])
df2 = pd.DataFrame(['one', 'two', 'three', 'four'])
我现在想将所有可能的组合放入一个 n*n 矩阵/DataFrame 中,所有交叉产品的值都是自定义函数的输出。
def my_function(x, y):
return f"{x}:{y}"
因此,这应该导致:
df = pd.DataFrame([['1:one', '2:one', '3:one', '4:one'],
['1:two', '2:two', '3:two', '4:two'],
['1:three', '2:three', '3:three', '4:three'],
['1:four', '2:four', '3:four', '4:four']])

0 1 2 3
0 1:one 2:one 3:one 4:one
1 1:two 2:two 3:two 4:two
2 1:three 2:three 3:three 4:three
3 1:four 2:four 3:four 4:four
虽然我可以通过 itertools.product 建立自己的矩阵,对于较大的数据集,这似乎是一种非常低效的方式,我想知道是否有更 Pythonic 的方式。提前谢谢你。

最佳答案

让我们试试 np.add.outer

df = pd.DataFrame(np.add.outer(df1[0].astype(str).values,':'+df2[0].values).T)
Out[258]:
0 1 2 3
0 1:one 2:one 3:one 4:one
1 1:two 2:two 3:two 4:two
2 1:three 2:three 3:three 4:three
3 1:four 2:four 3:four 4:four

关于python - 将函数应用于 Pandas 行-行叉积,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63231615/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com