Python :缩放 pandas 数据框中的列
Python : Scale columns in pandas dataframe
我得到了一个包含多列的数据框。
每个列都需要用单独的值进行缩放,我想知道是否有任何 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 缩放...其中每一列都乘以字典中的所需值
应该给出所需的输出
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
我得到了一个包含多列的数据框。 每个列都需要用单独的值进行缩放,我想知道是否有任何 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 缩放...其中每一列都乘以字典中的所需值 应该给出所需的输出
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