假设我有一个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/