Python 如何对pandas中的两组列执行元素操作

Python 如何对pandas中的两组列执行元素操作,python,pandas,numpy,dataframe,operation,Python,Pandas,Numpy,Dataframe,Operation,我有数据帧: c1 | c2 | c3 | c4 5 | 4 | 9 | 3 res = pd.DataFrame(df[['c1', 'c2']].values / df[['c3', 'c4']].values) print(res) 0 1 0 0.555556 1.333333 我如何在c1/c2和c3/c4之间执行元素划分(或其他操作) 因此,结果是: .5555 | 1.33333 我试过: df[['c1', 'c2']]

我有数据帧:

 c1 | c2 | c3 | c4
 5  |  4 | 9  | 3
res = pd.DataFrame(df[['c1', 'c2']].values / df[['c3', 'c4']].values)

print(res)

          0         1
0  0.555556  1.333333
我如何在c1/c2和c3/c4之间执行元素划分(或其他操作)

因此,结果是:

.5555 | 1.33333
我试过:

df[['c1', 'c2']].div(df[['c3', 'c4']], axis='index'))

但那只是导致了南斯。

我不确定我是否正确理解了你的问题,但你可以直接将这个系列进行划分

df['c1/c2'] = df['c1'] / df['c2']
看看这个答案:


编辑:好吧,我明白OPs现在在问什么。。请参阅其他答案。

一种解决方案是下拉到NumPy并创建一个新的数据帧:

 c1 | c2 | c3 | c4
 5  |  4 | 9  | 3
res = pd.DataFrame(df[['c1', 'c2']].values / df[['c3', 'c4']].values)

print(res)

          0         1
0  0.555556  1.333333

非常简单,只需除以值即可

df[['c1', 'c2']]/df[['c3','c4']].values

顺序很重要,所以一定要在分母中使用正确的顺序。不需要重新创建数据帧

是的,但我想对整个操作进行矢量化,这样我就不必对列进行for循环。这与OP的期望输出不匹配。是的,一个数据帧有两列,一列用于c1/c3的结果,另一列用于c2/c4的结果。对不起,我不清楚。