我是pandas数据帧的新手,我想为每个列应用一个函数,以便计算每个元素的x,x / max列。
我引用了这个问题,但无法访问每列的最大值。提前致谢 Pandas DataFrame: apply function to all columns
输入:
A B C D
0 8 3 5 8
1 9 4 0 4
2 5 4 3 8
3 4 8 5 1
输出:
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
答案 0 :(得分: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
请注意,我将df
乘以1.0
,以便它不再包含int
s(.astype(float)
也会有效)以避免整数除法结果DataFrame为0和1。