Python:在dataframe中缩放列
我得到了一个有几列的数据框。 每个列都需要使用单独的值进行缩放,我想知道是否有任何一个行可以在给定字典或其他内容的情况下缩放相应的列 例如。 scalingDictionary={a':10,'b':5,'c':0.1} df=pd.Dataframe({'a':[2,4,6,8],'b':[3,6,9,12],'c':[1,2,3,4]}) 一行缩放。。。其中,每列与字典中的所需值相乘 应提供所需的输出Python:在dataframe中缩放列,python,pandas,dataframe,scaling,Python,Pandas,Dataframe,Scaling,我得到了一个有几列的数据框。 每个列都需要使用单独的值进行缩放,我想知道是否有任何一个行可以在给定字典或其他内容的情况下缩放相应的列 例如。 scalingDictionary={a':10,'b':5,'c':0.1} df=pd.Dataframe({'a':[2,4,6,8],'b':[3,6,9,12],'c':[1,2,3,4]}) 一行缩放。。。其中,每列与字典中的所需值相乘 应提供所需的输出 a b c 20 15 0.1 40 30 0.2 60
a b c
20 15 0.1
40 30 0.2
60 45 0.3
80 60 0.4
具有字典的多个DataFrame,如果键与列名相同,则工作正常:
df = df.mul(scalingDictionary)
print (df)
a b c
0 20.0 15.0 0.1
1 40.0 30.0 0.2
2 60.0 45.0 0.3
3 80.0 60.0 0.4
如果某些列不匹配:
scalingDictionary = {'a': 10, 'b': 5}
df = pd.DataFrame({'a':[2,4,6,8], 'b':[3,6,9,12], 'c':[1,2,3,4]})
df = df.mul(pd.Series(scalingDictionary).reindex(df.columns, fill_value=1))
print (df)
a b c
0 20 15 1
1 40 30 2
2 60 45 3
3 80 60 4
或:
键是否总是与列名称相同?
df = df.mul({**dict.fromkeys(df.columns, 1), **scalingDictionary})
print (df)
a b c
0 20 15 1
1 40 30 2
2 60 45 3
3 80 60 4