python - 将 Pandas DataFrame 中的所有行乘以字典

标签 python pandas

假设我有一个DataFrame,像这样称它为one:

non_multiply_col col_1 col_2
A Name           1     3

和这样的 dict 称它为 two:

{'col_1': 4, 'col_2': 5}

对于 two 定义的列,有没有一种方法可以将 one 的所有行乘以 two 中的值键所以结果将是:

non_multiply_col col_1 col_2
A Name           4     15

我尝试使用 multiply,但我并不是真的想加入任何特定的事件。也许我不明白如何正确使用 multiply

谢谢

最佳答案

mul/multiply 如果将字典转换为 Series 则工作正常:

d = {'col_1': 4, 'col_2': 5}

df.mul(pd.Series(d), axis=1)

#   col_1   col_2
#0      4      15

如果数据框中的列多于字典:

df = pd.DataFrame([{'col_1': 1, 'col_2': 3, 'col_3': 4}])   
d = {'col_1': 4, 'col_2': 5}

cols_to_update = d.keys()  # you might need cols_to_update = list(d.keys()) in python 3
# multiply the selected columns and update
df[cols_to_update] = df[cols_to_update].mul(pd.Series(d), axis=1)[cols_to_update]
df

    col_1   col_2   col_3
#0      4      15       4

我碰巧也发现了这项工作,不确定这种用法是否有任何警告:

df[d.keys()] *= pd.Series(d)

关于python - 将 Pandas DataFrame 中的所有行乘以字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43728289/

相关文章:

python - 为什么 pandas dataframe 单元格的 id 会随着每次执行而变化?

python - 如何以最佳(Pythonic)方式编写这段代码?

python - python中的字符串解析

python - 带掩蔽的密集光流

python - python字典中的变量用于http header 构建

python - 在 Pandas 中,如何根据值的类型过滤系列?

python - Pandas:如何将 col1 的每一行保存到单独的文件中,并将 col2 的行作为文件名?

python - Pandas MultiIndex 获取所有一个 0 级列和一个特定列

Python 相当于 getOrElse

python - 使用现有的 pptx Python-Pptx 创建新的 pptx