将数据帧中的列除以一系列(结果仅为nan?)

2024-04-27 03:28:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着做一个和这个问题中的内容相似的事情:Python Pandas - n X m DataFrame multiplied by 1 X m Dataframe

我有一个nxmdataframe,所有的非零浮点值,一个1xm列,所有的非零浮点值,我试图用列中的值除以nxmdataframe中的每一列。在

所以我有:

a      b      c
1      2      3
4      5      6
7      8      9

以及

^{pr2}$

我希望能回来:

a      b     c
1/11   2/11  3/11
4/12   5/12  6/12
7/13   8/13  9/13

我先尝试了一个乘法运算,看看能不能使它起作用,所以我试着应用上面问题的答案中给出的两个解。在

df_prod = pd.DataFrame({c:df[c]* df_1[c].ix[0] for c in df.columns})

这将产生“密钥错误0” 使用另一种解决方案:

df.mul(df_1.iloc[0])

这只是给了我所有的南,虽然在正确的形状。在


Tags: 答案内容dataframepandasdfbyprod事情
1条回答
网友
1楼 · 发布于 2024-04-27 03:28:45

NAN的原因是索引的不一致。为了克服这个问题,你要么需要除以numpy数组

# <=0.23
df.values / df2[['x']].values  # or df2.values assuming there's only 1 column
# 0.24+
df.to_numpy() / df[['x']].to_numpy()

array([[0.09090909, 0.18181818, 0.27272727],
       [0.33333333, 0.41666667, 0.5       ],
       [0.53846154, 0.61538462, 0.69230769]])

或使用.div执行轴对齐除法:

^{pr2}$

相关问题 更多 >