【问题标题】:Apply function on Pandas dataframe在 Pandas 数据框上应用函数
【发布时间】:2012-12-19 02:03:13
【问题描述】:

我是 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.888..”是否足够,或者您真的需要分数8/9
  • 哦,是的,0.888 会很棒。它旨在显示操作。很抱歉造成混乱。

标签: python pandas


【解决方案1】:

这样的事情应该可以工作:

>>> 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,使其不再包含ints(.astype(float) 也可以)以避免整数除法和结果DataFrame 充满0 和1。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-13
    • 1970-01-01
    • 2022-01-19
    • 1970-01-01
    • 2020-04-02
    • 2017-09-07
    相关资源
    最近更新 更多