我是pandas数据帧的新手,我想为每个列应用一个函数,以便计算每个元素的x,x/max列.
我引用了这个问题,但无法访问每列的最大值.在此先感谢 Pandas DataFrame:将函数应用于所有列
输入:
A B C D
0 8 3 5 8
1 9 4 0 4
2 5 4 3 8
3 4 8 5 1
Run Code Online (Sandbox Code Playgroud)
输出:
A B C D
0 8/9 3/8 5/5 8/8
1 9/9 4/8 0/5 4/8
2 5/9 4/8 3/5 8/8
3 4/9 8/8 5/5 1/8
Run Code Online (Sandbox Code Playgroud)
DSM*_*DSM 13
这样的事情应该有效:
>>> from pandas import DataFrame
>>>
>>> df = DataFrame({"A": [8,9,5,4], "B": [3,4,4,8], "C": [5,0,3,5], "D": [8,4,8,1]})
>>> df.max()
A 9
B 8
C 5
D 8
>>> (df * 1.0)/df.max()
A B C D
0 0.888889 0.375 1.0 1.000
1 1.000000 0.500 0.0 0.500
2 0.555556 0.500 0.6 1.000
3 0.444444 1.000 1.0 0.125
Run Code Online (Sandbox Code Playgroud)
请注意,我乘df用1.0,这样它没有包括int小号了(.astype(float)会工作过),以避免整数除法,所得到的数据帧完整的0和1组成.