说我有DataFrame
这样称呼one
:
non_multiply_col col_1 col_2
A Name 1 3
和这样的dict
称之为two
:
{'col_1': 4, 'col_2': 5}
有哪种方法可以将one
的所有行乘以two
中由two
键定义的列的值,这样结果就是:
non_multiply_col col_1 col_2
A Name 4 15
我尝试使用multiply
,但我并不真正想要加入任何具体的事情。也许我不理解如何正确使用multiply
。
由于
答案 0 :(得分:3)
mul / multiply 可以正常工作:
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)