【问题标题】:Python : Scale columns in pandas dataframePython:在熊猫数据框中缩放列
【发布时间】:2020-11-30 09:19:32
【问题描述】:

我得到了一个包含几列的数据框。 每个列都需要使用单独的值进行缩放,我想知道是否有任何 oneliner 可以在给定字典或其他内容的情况下缩放适当的列。

例如。 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]})

oneliner scaling ... 其中每一列都与字典中的所需值相乘 应该给出所需的输出

a    b    c
20   15   0.1
40   30   0.2
60   45   0.3
80   60   0.4

【问题讨论】:

  • 键总是和列名一样吗?

标签: python pandas dataframe scaling


【解决方案1】:

带有字典的多个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

【讨论】:

    猜你喜欢
    • 2021-08-30
    • 2020-03-09
    • 2014-03-12
    • 2016-07-27
    • 2021-07-06
    • 1970-01-01
    • 2019-06-07
    • 1970-01-01
    • 2020-06-03
    相关资源
    最近更新 更多