在字典键与特定 Dataframe 列匹配的情况下,是否有比迭代列更好的方法来将列值乘以字典值?
import pandas as pd
df = pd.DataFrame({
'category': [1,2,3,4,5],
'a': [5,4,3,3,4],
'b': [3,2,4,3,10],
'c': [3, 2, 1, 1, 1]
})
以及以下内容的字典:
lookup = {1:0, 2:4, 3:1, 4:6, 5:2}
我可以将除'category'以外的每一列乘以键与'category'匹配的字典值,方法如下:
for t in df.columns[1:]:
df[t] = df[t].mul(df['category'].map(lookup)).fillna(df[t])
但是除了在列上迭代之外,一定还有更简洁的方法来完成这一点吧?
2条答案
按热度按时间qncylg1j1#
输出:
yvt65v4c2#
另一种方法