python - 将系列广播到 DataFrame

标签 python pandas

我有一个类似的系列:

A    2
B    3
C    4

还有一个像这样的 DataFrame:

    A   B   C
0   1   2   3
1   4   5   6
2   7   8   9

我想将系列分配给数据框中的所有行。这是预期的输出:

    A   B   C
0   2   3   4
1   2   3   4
2   2   3   4

因为我能做到

for col in ser.index:
    df[col] = ser[col]

但是什么是更有效的方法呢?

最佳答案

使用 pandas.DataFrame.divmul:

df.div(df).mul(s)

或者使用 numpy.tile 更快(iff df.columns == s.index):

pd.DataFrame(np.tile(s, (len(df), 1)), columns=df.columns)

输出:

     A    B    C
0  2.0  3.0  4.0
1  2.0  3.0  4.0
2  2.0  3.0  4.0

关于python - 将系列广播到 DataFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59762934/

相关文章:

python - 读取并正确理解/解释文件中的控制字符(python)

python - 选择用于复制 Pandas DataFrame 的列

python - 如何使用 Pandas ExcelWriter 将空工作表添加到现有工作簿中

python - 使用 Pandas Dataframe 仅选择一个日期小于另一个日期的行

python - Pandas - 包含评论(行)和单词作为列标题的数据框如何获得频率计数?

python - 在 python 文件中运行 Django 项目时出错

python - tensorflow:使用队列运行器有效地提供 eval/train 数据

python - 从 Pandas 中的文本时间生成 15 分钟间隔

python - TypeError : float() argument must be a string or a number, 不是 'method'

python - 替换 Pandas 数据框中的特殊字符